当前位置: 主页 > 编程知识 > asp编程 > ASP实例学习自动按照字符长度截取标题内容的函数

ASP实例学习自动按照字符长度截取标题内容的函数

时间:2010-6-24来源:站长资讯网 点击:

    最近在学习ASP开发一个网站过程中,做一个显示新闻标题的ASP程序,有时候标题中会出现汉字和英文共存,如果直接用left截取字符串,会因为中文字和英文字所在字符长度不一样,而出现两条新闻标题长度不一,通过研究,通过使用这个ASP函数可以解决编程中遇到的这个问题了。


<%
‘**************************************************
‘函数名: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, " ", " "), """, Chr(34)), ">", ">"), "&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, " ", " "), Chr(34), """), ">", ">"), "<", "&lt;")
End Function
%>
 <%
 str="一共11111w有汉字"
 str1="一共有五汉字"
 response.write "gotTopic
"
 response.write gotTopic(str,10)&"
"&gotTopic(str1,10)&"
"
 response.write "left
"
 response.write Left(str,5)&"
"&Left(str1,5)
 response.end
%>

站长资讯网
. TAG: ASP,字符长度,截取标题,函数
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言