ASP如何计算中英文混合字符串长度和截取字符串

用ASP做网站的时候经常会碰到要截取字符串的情况。ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际占用的宽度就不好计算了,如果按照Len函数计算的长度来截取字符串截出来的效果也会长短不一,下面是按照一个汉字相当于两个英文字符来计算字符串长度和截取字符串的代码

 

计算中英文混合字符串的长度:

  1. function getStringLen(str) 
  2. on error resume next        
  3.     dim l,c,i,t 
  4.     l=len(str) 
  5.     t=l 
  6.     for i=1 to l 
  7.         c=asc(mid(str,i,1)) 
  8.         if c>=128 or c<0 then t=t+1 
  9.     next         
  10.     getStringLen=t   
  11.     if err.number<>0 then err.clear 
  12. end function 

 

 

截取字符串:

  1. function getSubString(str,Length) 
  2. on error resume next        
  3.     dim l,c,i,hz,en 
  4.     l=len(str) 
  5.     if l<length then 
  6.         getSubString=str 
  7.     else 
  8.         hz=0 
  9.         en=0 
  10.         for i=1 to l 
  11.             c=asc(mid(str,i,1)) 
  12.             if c>=128 or c<0 then  
  13.                 hz=hz+1 
  14.             else 
  15.                 en=en+1 
  16.             end if 
  17.      
  18.             if en/2+hz>=length then 
  19.                 exit for 
  20.             end if 
  21.         next         
  22.         getSubString=left(str,i) & "…" 
  23.     end if 
  24.     if err.number<>0 then err.clear 
  25. end function 

ASP如何计算中英文混合字符串长度和截取字符串,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。