asp 提取前100个字符问题

我从数据库里面读出数据,然后再前台显示前100个字,但是显示出来的字有多有少,我想要显示出相同的字符,要怎么弄啊,我用了过滤空格和图片的函数,但是还不管用,显示的字,有多有少,请高手帮忙啊。

根据你的要求给你一个思路:

1:如果要显示的内容中有HTML代码,那么就删除它,可以使用正则表达式来完成这一步;正则表达式举例:
set regex = new regexp
regex.pattern = "<[^<]*>"
regex.ignorecase = true
regex.global = true
str = regex.replace(str,"") '替换<>内容为空

2:可以考虑删除掉空格,这个你已经做了;

3:注意全角半角,在取前多少字时,不能简单的使用Left函数,应该注意到半角字符和全角字符的区别,一个全角字符应该等于两个半角字符,这里提供个函数你参考下。

'按汉字数截取字符串
Function sLeft(str, ll)
l = Len(str) '获取字符串长度

If l <= ll Then '如果长度小于等于规定长度
sLeft = str
Else
sLeft = ""
t = 0
For i = 1 To l
s = Mid(str, i, 1)
c = Asc(s)
If c < 0 Then c = c + 65536
If c > 255 Then
t = t + 1
Else
t = t + 0.5
End If
sLeft = sLeft & s

if t >= ll then exit for
Next
End If
End Function

使用举例:response.write sLeft("中z华h人r民m共g和h国g", 4)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-15
'****************************************************************************
'' @功能说明: 计算源字符串Str的长度(一个中文字符为2个字节长)
'' @参数说明: - str [string]: 源字符串
'' @返回值: - [Int] 源字符串的长度
'****************************************************************************
Public Function strLen(Str)
If Trim(Str)="" Or IsNull(str) Then
strlen=0
else
Dim P_len,x
P_len=0
StrLen=0
P_len=Len(Trim(Str))
For x=1 To P_len
If Asc(Mid(Str,x,1))<0 Then
StrLen=Int(StrLen) + 2
Else
StrLen=Int(StrLen) + 1
End If
Next
end if
End Function
'---------------------------------------
'截取一定长度的字符串
'---------------------------------------
Public Function CutStr2(Str,LenNum,isstr)
Dim P_num
Dim I,X
If StrLen(Str)<=LenNum Then
CutStr2=Str
Else
P_num=0
X=0
Do While Not P_num > LenNum-2
X=X+1
If Asc(Mid(Str,X,1))<0 Then
P_num=Int(P_num) + 2
Else
P_num=Int(P_num) + 1
End If
CutStr2=Left(Trim(Str),X)&isstr
Loop
End If
End Function

'-------------------去掉html js css
Function delHtml(strHtml)

Dim objRegExp, strOutput
Set objRegExp = New Regexp ' 建立正则表达式

objRegExp.IgnoreCase = True ' 设置是否区分大小写
objRegExp.Global = True '是匹配所有字符串还是只是第一个
objRegExp.Pattern = "(<[a-zA-Z].*?>)|(<[\/][a-zA-Z].*?>)" ' 设置模式引号中的是正则表达式,用来找出html标签

strOutput = objRegExp.Replace(strHtml, "") '将html标签去掉
strOutput = Replace(strOutput, "<", "<") '防止非html标签不显示
strOutput = Replace(strOutput, ">", ">")
strOutput = Replace(strOutput, " ", "")
delHtml = strOutput

Set objRegExp = Nothing
End Function
第2个回答  2010-01-15
left(replace(replace(replace(nohtml(rsArticle("Content")),chr(34),""),chr(10),""),chr(13),""),100)
这样试试,不知道能不能帮助你了!本回答被提问者和网友采纳
第3个回答  2010-01-15
添加清除html页面的函数,然后就可以了