在用ASP處理文字時。系統自帶的字串長度偵測函數有時候也不是很好用。例如一個漢字也只會算一個字節,在排版時如果全是漢字,好說,反正沒什麼差別,但是如果被操作的字符串有漢字又有英文字母時,就不方便了,以下三個函數可以代替ASP自帶的相關函數。
也有註意的地方,如果用在循環中,因不變量i也是常用於循環的變量,執行以下函數時,i的值會發生變化,如果是調用他的循環中用到相同的變量,會產生未知的結果,請換用其它變數名。
以下用法和len(),left(),right()一樣。
程式碼
複製代碼代碼如下:
Function Strlength(Str)
Temp_Str=Len(Str)
For I=1 To Temp_Str
Test_Str=(Mid(Str,I,1))
If Asc(Test_Str)>0 Then
Strlength=Strlength+1
Else
Strlength=Strlength+2
End If
Next
End Function
Function Strleft(Str,L)
Temp_Str=Len(Str)
For I=1 To Temp_Str
Test_Str=(Mid(Str,I,1))
Strleft=Strleft&Test_Str
If Asc(Test_Str)>0 Then
lens=lens+1
Else
lens=lens+2
End If
If lens>=L Then Exit For
Next
End Function
Function Strright(Str,L)
Temp_Str=Len(Str)
For i = Temp_Str to 1 step -1
Test_Str=(Mid(Str,I,1))
Strright=Test_Str&Strright
If Asc(Test_Str)>0 Then
lens=lens+1
Else
lens=lens+2
End If
If lens>=L Then Exit For
Next
End Function