2011-04-06 47 views
0

我們有一個網站,它有許多我們的第三方程序員編寫的有用函數,但最近我注意到,其中一個似乎在運行時放入一個空間,但我似乎無法找到可能的位置以便將其刪除。這個功能是否在放置空間?

該函數被稱爲「formatspecialcharacters」。它的功能是將一個字符串,並通過它看從字符串更改特殊字符轉換成HTML實體寫爲:

function formatspecialcharacters(stringtoformat) 

formatspecialcharacters = "" 

if isblank(stringtoformat) then exit function 

stringtoformat = CStr(stringtoformat) 
stringtoformat = Trim(stringtoformat) 
fieldcontents = HTMLDecode(stringtoformat) 

if Len(fieldcontents)>0 then 
    for character_i = 1 to Len(fieldcontents) 
     character_c = asc(mid(fieldcontents, character_i, 1)) 

     select case character_c 
     case 174, 169 
      formatspecialcharacters = formatspecialcharacters & "<sup>" & chr(character_c) & "</sup>" 
     case else 
      formatspecialcharacters = formatspecialcharacters & chr(character_c) 
     end select 
    next 
end if 
end function 

一個以上(HTMLDecode)內運行的其他功能寫爲:

Function HTMLDecode(sText) 
sText = vbcrlf & vbtab & sText 
    Dim I 
    sText = Replace(sText, "&quot;", Chr(34)) 
    sText = Replace(sText, "&lt;" , Chr(60)) 
    sText = Replace(sText, "&gt;" , Chr(62)) 
    sText = Replace(sText, Chr(62) , Chr(62) & vbcrlf & vbtab) 
    sText = Replace(sText, "&amp;" , Chr(38)) 
    sText = Replace(sText, "&nbsp;", Chr(32)) 
    sText = Replace(sText, Chr(147), Chr(34)) 'smart quotes to proper quotes 
    sText = Replace(sText, Chr(148), Chr(34)) 
    sText = Replace(sText, Chr(146), Chr(39)) 'smart apostrophe to proper apostrophe 
    For I = 1 to 255 
     sText = Replace(sText, "&#" & I & ";", Chr(I)) 
    Next 
    HTMLDecode = sText 
End Function 

我認爲它可能在第二個功能,因爲當我使用它是這樣的:

<a href="<%=decendentdocumentformat_filename(j)%>"><%=formatspecialcharacters(decendentdocumentformat_label(j))%></a> 

"decendentdocumentformat_filename(j)" = "/example.html""formatspecialcharacters(decendentdocumentformat_label(j))" = "Web Page"

在這個例子中,當它被渲染時,我有鏈接,後面是一個空格,然後是標籤(在這個例子中是"Web Page"),它應該是鏈接,然後是標籤,它們之間沒有空格。

任何幫助將是偉大的。
在此先感謝。

回答

4

不是100%肯定我遵循,但如果你是;

<p><%=formatspecialcharacters("AAA") %><%=formatspecialcharacters("BBB") %></p> 

你會看到一個空格; AAA BBB,因爲HTMLDecode所做的第一件事是在輸入字符串前添加一個回車符/換行符&,瀏覽器將其顯示爲空格。

如果你不想要的可視空間刪除sText = vbcrlf & vbtab & sText

(此外,輸入不HTMLDecode後修剪,所以如果它獲得通過「XXX&nbsp;」你將有一個空格)

+0

非常感謝你,它做到了! – stephmoreland 2011-04-06 16:13:08