区别中英文控制输出字符串的长度

asp函数

2008-09-18 15:10

str1="1234567890123456789"  
str2="本文来源于 WEB开发网 原文"  
str3="本文来源于123WEB开发网 原文"
str4="原文链接:http://www.qq163sina.com.cn/asp/5275.htm"

response.Write(strvalue(str1,15,0))
response.Write("<br>")
response.Write(strvalue(str2,15,0))
response.Write("<br>")
response.Write(strvalue(str3,15,1))
response.Write("<br>")
response.Write(strvalue(str4,35,1))

function strlen(str)
dim p_len
p_len=0
strlen=0
if trim(str)<>"" then
p_len=len(trim(str))
for xx=1 to p_len
if asc(mid(str,xx,1))<0 then
strlen=int(strlen) + 2
else
strlen=int(strlen) + 1
end if
next
end if
end function

'--------------------------------
1 要截取的字符串
2 要截取的长度
3 超长显示不显示... (0不显 1显)
function strvalue(str,lennum,y)
dim p_num
dim i
if strlen(str)<=lennum then
strvalue=str
else
p_num=0
x=0
do while not p_num > lennum-1
x=x+1
if asc(mid(str,x,1))<0 then
p_num=int(p_num) + 2
else
p_num=int(p_num) + 1
end if

if y=0 then
strvalue=left(trim(str),x)
else
strvalue=left(trim(str),x)&"…"
end if
loop
end if
end function