网页编程 - ASP过长标题截断

在文章列表的时候,如果标题过长,往往会撑破表格破坏页面形象。一般做法是略去超长部分而以省略号代替。比如要取前10个字符,则可写出以下语句:

    

    if Len(title)>10 then title=Left(title,9)+"…"  

        '凑起来刚好10个字符

    

    而我们中国人要面对现实——汉字宽度是字母的两倍。所以得设计一个函数,用一个变量计算字符串长度,如果遇到的是字母,这个长度就加1,如果遇到的是汉字,长度加2:

    

    FUNCTION cuttitle(str,strlen)

        'str为待切标题,strlen为截取长度(按字母计算)

        dim tmplen,tmpstr,i,s

        tmpstr=""

        tmplen=0

        str=trim(str)

        if str="" then exit function

        for i=1 to Len(str)

            s=mid(str,i,1)

            tmpstr=tmpstr&s

            tmplen=tmplen+1

            if Asc(s)<0 then tmplen=tmplen+1

            '如果是汉字,长度再加1

            if tmplen>strlen then

                tmpstr=Left(tmpstr,Len(tmpstr)-2)&"…"

                exit for

            end if

        next

        cuttitle=tmpstr

    END FUNCTION