作者:蕾仔 出处:ltroy@163.com加入时间:2005-8-4 1:05:19
例如有段字符串变量为:
a="abcd不以efg"
b=len(a)
b的值为9
但有时候为了版面设计,不让字符串宽度超过规定值时,
用len()来判断就会判断失误,所以写了以下的一个函数
<%
Function s_len(str1,num_n,sort_d) 'str1为字符串,num_n为显示左边字符串的个数,sort_d为结尾显示的符号如 ~ 或 ... 或 ** 等等
'例如:str1="abcd不以efg"
'<%=s_len(str1,6,"....")%>
'上面输出时就系: abcd不....
length=len(str1)
dim dd,ii
chinese=0
for ii=1 to length
if asc(mid(str1,ii,1))<1 or asc(mid(str1,ii,1))>255 then '计算有多少个双字节变量
dd=dd+1
end if
if dd+ii>num_n then '如果双字节变量数加上数大于规定的数(num_n),就不用循环了
exit for
end if
next
s_len=left(str1,ii) '显示左边ii(循环数)个位数
if dd+ii>num_n then '如果实际位数(汉字算两位)超过规定的数(num_n),就在后面加上sort_d
s_len=s_len+sort_d
end if
End Function%>