正文

截字符串,汉字一个算两个字符,英文算一个字符2007-05-09 09:03:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wangsdong/25726.html

分享到:

通常在显示新闻标题的时候,有时候标题中会出现汉字和英文共存,直接用left截字符串会出现两条新闻标题长度不一,使用这个函数可以解决这个问题。<%'**************************************************'函数名:gotTopic'作  用:截字符串,汉字一个算两个字符,英文算一个字符'参  数:str   ----原字符串'       strlen ----截取长度'返回值:截取后的字符串'**************************************************Function gotTopic(ByVal str, ByVal strlen)    If str = "" Then        gotTopic = ""        Exit Function    End If    Dim l, t, c, i, strTemp    str = Replace(Replace(Replace(Replace(str, "&nbsp;", " "), "&quot;", Chr(34)), "&gt;", ">"), "&lt;", "<")    l = Len(str)    t = 0    strTemp = str    strlen = CLng(strlen)    For i = 1 To l        c = Abs(Asc(Mid(str, i, 1)))        If c > 255 Then            t = t + 2        Else            t = t + 1        End If        If t >= strlen Then            strTemp = Left(str, i)            Exit For        End If    Next    If strTemp <> str Then        strTemp = strTemp & "…"    End If    gotTopic = Replace(Replace(Replace(Replace(strTemp, " ", "&nbsp;"), Chr(34), "&quot;"), ">", "&gt;"), "<", "&lt;")End Function%><% <% str="一共11111w有汉字" str1="一共有五汉字" response.write "gotTopic<br>" response.write gotTopic(str,10)&"<br>"&gotTopic(str1,10)&"<br>" response.write "left<br>" response.write Left(str,5)&"<br>"&Left(str1,5) response.end%>%>

阅读(4153) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册