为输入及输出的数据库的资料做造型
2001-04-13 10:17:27 来源:WEB开发网核心提示:在討論區上有許多網友問到按怎處理雙引號的問題, 擱有網友問到由資料庫抓出來的資料無法斷行的問題, 其實在 VBscript 有一支 Replace 函數可以來幫助咱們處理這款問題, 所以今日的文章就要來討論用 Replace 來替資料做造型 Replace 函數 一開始還是來看看 Replace 的語法 Replace
在討論區上有許多網友問到按怎處理雙引號的問題, 擱有網友問到由資料庫抓出來的資料無法斷行的問題, 其實在 VBscript 有一支 Replace 函數可以來幫助咱們處理這款問題, 所以今日的文章就要來討論用 Replace 來替資料做造型
Replace 函數
一開始還是來看看 Replace 的語法
Replace(搜尋字串, 字串甲, 字串乙[, 開始位置][, 計數][, 比較方式]]]))
意思是這樣的: 由 搜尋字串 的 開始位置 找起, 找出字串甲, 並將它置換成 字串乙, 總共要做 計數 次
比較方式可以是下底的值
vbBinaryCompare - 0 (預設值), 二進位比較, 也就是大小寫區分
vbTextCompare - 1 , 文字模式比較, 不區分大小寫
VBscript 字串常數
這裡列出一些 VBscript 的字串常數供大家參考
常數 值 說明
vbCr Chr(13) Carriage Return
vbCrLf Chr(13) & Chr(10) Carriage Return and Line Feed
vbLf Chr(10) Line Feed
vbNewLine Chr(13) & Chr(10) 或 Chr(10) New Line
vbTab Chr(9) Tab (horizontal)
處理單雙引號
現在就先來看看討論區上最常問到的問題, 由於在下 SQL 指令如 Insert, Update, 你會將資料用單引號包起來, 就親像按呢
Update SomeTable Set Col001='你的資料' Where Col002='條件'
但如果你的資料中含有單(雙)引號, 那麼 SQL 就會搞不清楚這是資料的分隔符號或是資料本身, 因此我們必須要利用 Replace 函數把單引號再重複一次, 按呢 SQL 才會懂這是資料一部份, 至於雙引號部分由於使用 Replace(String, """, """") 似乎是行不通, 因此咱們使用另一個方式 - ASCII 碼, 雙引號的 ASCII 碼為 34 , 因此我們將 CHR(34) 置換為 CHR(34), 雖然沒有換不過至少騙過 SQL Server, 達成目的就好, 好! 來看看函數按怎寫
Function FormatQuote(String)
On Error Resume Next
String = Replace(String,"'","''")
String = Replace(String,chr(34),chr(34))
FormatQuote = String
End Function
輸出資料斷行
擱來來看第二個問題 - 資料由資料庫拉出後在 HTML 格式上無法斷行的問題, 這個問題是很正常的, 因為在 HTML 上的換行是 <br> 所以它不認識 Line Feed - CHR(10) 和 Carriage Return - CHR(13), 同款的利用 Replace 函數來做處理, 將其轉換成為 HTML 的 <p> 或是 <br> , 另外由於 HTML 只認一個空白字元, 所以也要對空白字元做處理, 將其轉換成 , 最後的考量就是 HTML 的標籤分隔符號 < > , 如果你的資料中有可能含有這樣的格式, 你可以加上第 6, 7 行
Function FormatStr(String)
On Error Resume Next
String = Replace(String, CHR(13), "")
String = Replace(String, CHR(10) & CHR(10), "<P>")
String = Replace(String, CHR(10), "<BR>")
String = Replace(String, CHR(32), " ")
String = Replace(String, "<", "<")
String = Replace(String, ">", ">")
FormatStr = String
End Function
希望這篇文章對你有幫助!
Replace 函數
一開始還是來看看 Replace 的語法
Replace(搜尋字串, 字串甲, 字串乙[, 開始位置][, 計數][, 比較方式]]]))
意思是這樣的: 由 搜尋字串 的 開始位置 找起, 找出字串甲, 並將它置換成 字串乙, 總共要做 計數 次
比較方式可以是下底的值
vbBinaryCompare - 0 (預設值), 二進位比較, 也就是大小寫區分
vbTextCompare - 1 , 文字模式比較, 不區分大小寫
VBscript 字串常數
這裡列出一些 VBscript 的字串常數供大家參考
常數 值 說明
vbCr Chr(13) Carriage Return
vbCrLf Chr(13) & Chr(10) Carriage Return and Line Feed
vbLf Chr(10) Line Feed
vbNewLine Chr(13) & Chr(10) 或 Chr(10) New Line
vbTab Chr(9) Tab (horizontal)
處理單雙引號
現在就先來看看討論區上最常問到的問題, 由於在下 SQL 指令如 Insert, Update, 你會將資料用單引號包起來, 就親像按呢
Update SomeTable Set Col001='你的資料' Where Col002='條件'
但如果你的資料中含有單(雙)引號, 那麼 SQL 就會搞不清楚這是資料的分隔符號或是資料本身, 因此我們必須要利用 Replace 函數把單引號再重複一次, 按呢 SQL 才會懂這是資料一部份, 至於雙引號部分由於使用 Replace(String, """, """") 似乎是行不通, 因此咱們使用另一個方式 - ASCII 碼, 雙引號的 ASCII 碼為 34 , 因此我們將 CHR(34) 置換為 CHR(34), 雖然沒有換不過至少騙過 SQL Server, 達成目的就好, 好! 來看看函數按怎寫
Function FormatQuote(String)
On Error Resume Next
String = Replace(String,"'","''")
String = Replace(String,chr(34),chr(34))
FormatQuote = String
End Function
輸出資料斷行
擱來來看第二個問題 - 資料由資料庫拉出後在 HTML 格式上無法斷行的問題, 這個問題是很正常的, 因為在 HTML 上的換行是 <br> 所以它不認識 Line Feed - CHR(10) 和 Carriage Return - CHR(13), 同款的利用 Replace 函數來做處理, 將其轉換成為 HTML 的 <p> 或是 <br> , 另外由於 HTML 只認一個空白字元, 所以也要對空白字元做處理, 將其轉換成 , 最後的考量就是 HTML 的標籤分隔符號 < > , 如果你的資料中有可能含有這樣的格式, 你可以加上第 6, 7 行
Function FormatStr(String)
On Error Resume Next
String = Replace(String, CHR(13), "")
String = Replace(String, CHR(10) & CHR(10), "<P>")
String = Replace(String, CHR(10), "<BR>")
String = Replace(String, CHR(32), " ")
String = Replace(String, "<", "<")
String = Replace(String, ">", ">")
FormatStr = String
End Function
希望這篇文章對你有幫助!
更多精彩
赞助商链接