21
2017
07

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

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

 

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


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  

 

截取字符串:


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  


« 上一篇下一篇 »

发表评论: