用ASP做网站的时候经常会碰到要截取字符串的情况。ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际占用的宽度就不好计算了,如果按照Len函数计算的长度来截取字符串截出来的效果也会长短不一,下面是按照一个汉字相当于两个英文字符来计算字符串长度和截取字符串的代码。
function getSubString(str,Length) on error resume next dim l,c,i,hz,en l=len(str) if l<length then getSubString=str else hz=0 en=0 for i=1 to l c=asc(mid(str,i,1)) if c>=128 or c<0 then hz=hz+1 else en=en+1 end if if en/2+hz>=length then exit for end if next getSubString=left(str,i) & "…" end if if err.number<>0 then err.clear end function