2026年11月2日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
1000
Lv9有为九子能等级图标
勋章勋章勋章勋章勋章
帖子
9.3万
回复
2,089
积分
60.3万
注册
2006-12-06
[怀旧国机]

ASP截取字符串函数

[复制链接]
查看 144 回复 1
楼主 发表于 | 只看该作者

在列出新闻标题的时候,如果新闻标题长,就是改变网页的长度,引起页面难看。

这种情况下,可使用left和len两个函数来解决。但是遇到新闻标题中有英文或字母的时候,又会出现即使两个新闻标题都很长,但截取后在前台显示的新闻标题不一样长。主要的原因left和len两个函数将中文当作一个字符去了,所以引起这样。

下面这个函数可以解决这个问题,使用的方法和left函数一样。

<%

&apos;**************************************************

&apos;函数名:gotTopic

&apos;作 用:截字符串,汉字一个算两个字符,英文算一个字符

&apos;参 数:str ----原字符串

&apos; strlen ----截取长度

&apos;返回值:截取后的字符串

&apos;**************************************************

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)), “>“,“>“), “<“, “<“)

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;“), “>“,“>“), “<“, “<“)

End Function

%>

登录回复
54295
Lv8能识八方语等级图标等级图标等级图标等级图标
勋章勋章勋章勋章勋章勋章勋章勋章+2
帖子
360
回复
6,407
积分
5.3万
注册
2011-06-21
1 楼

<br/>道,可道,非常道;名,可名,非常名!

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块