当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP截取字符串函数

ASP
ASP实现不存在的网页就自动发送邮件
多个绑定多域名的ASP代码
ASP导出Excel数据的四种方法
用控件的方式解决问题-在客户端关联WEB控件引用
用ASP建立一个简单的聊天室
用Asp隐藏文件路径,实现防盗链
ASP实例:即时显示当前页面浏览人数
网页视频播放器程序代码通用代码
Cookies 欺骗漏洞的防范(vbs+js 实现)
ASP应用程序设计的Web状态管理分析
ASP中Session技巧
ASP教程:透彻掌握ASP分页技术
ASP获取字符串长度的自定义函数
通过实例讲解来学习ASP中的函数
ASP实例代码:长文章分页代码设置方法
深入理解ASP中FSO的神奇功能
用ASP代码得到客户端IP和当前地址
服务端 VBScript 与 JScript 几个相同特性的写法
JS+DIV模拟SELECT表单域
插入ASP代码让网站数据库成为ASP木马

ASP截取字符串函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 72 ::
收藏到网摘: n/a

在列出新闻标题的时候,如果新闻标题长,就是改变网页的长度,引起页面难看。
这种情况下,可使用left和len两个函数来解决。但是遇到新闻标题中有英文或字母的时候,又会出现即使两个新闻标题都很长,但截取后在前台显示的新闻标题不一样长。主要的原因left和len两个函数将中文当作一个字符去了,所以引起这样。
下面这个函数可以解决这个问题,使用的方法和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
%>