当前位置:编程学习 > asp >>

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

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

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

[vb] view plaincopy
function getStringLen(str) 
on error resume next        
    dim l,c,i,t 
    l=len(str) 
    t=l 
    for i=1 to l 
        c=asc(mid(str,i,1)) 
        if c>=128 or c<0 then t=t+1 
    next         
    getStringLen=t   
    if err.number<>0 then err.clear 
end function 

 

截取字符串:

[vb] view plaincopy
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 

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,