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

ASP
无刷新随时取得用户当前活动信息
编写一个asp代码执行器
利用XSL和ASP在线编辑XML文档
ASP应用:用stream读文件
如何用Asp动态生成xml文件
实例演练ASP+XML编程(1)
实例演练ASP+XML编程(2)
实例演练ASP+XML编程(3)
实例演练ASP+XML编程(4)
用文件写入建立简单的网上调查
轻松打造ASP计数器
用纯ASP代码实现图片上传
“在线访客”的制作方法
如何开发基于ASP的FLASH MX在线图象浏览器
ASP图形计数器设计详解
ASP+VML+DB实现投票统计项目
ASP中DLL的调试环境配置全攻略
一个实用的FSO-实时统计在线人数
ASP实现语音分时问候
利用ASP打造网站论坛DIY

ASP截取字符串函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 105 ::
收藏到网摘: 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
%>