帮忙修改一下asp程序的代码
ASP程序,如何限定显示的字符数?限制80个字符<%setrs0=server.createobject("adodb.recordset")ifrequest("id"...
ASP程序,如何限定显示的字符数?限制80个字符 <%
set rs0=server.createobject("adodb.recordset")
if request("id")<>"" then
sql0="select * from news where id="&cstr(request("id"))
else
sql0="select * from news where cataid =35 "
end if
rs0.open sql0,conn,1,1
if rs0.eof and rs0.bof then
response.write "<script>alert('对不起,该信息并不存在!');</Script>"
response.end
else
content=rs0("content")
end if
%>
<tr>
<td><font color="#000000" style="line-height:15pt"><%=content%></font></td>
</tr>
<%
set rs=Nothing
%> 展开
set rs0=server.createobject("adodb.recordset")
if request("id")<>"" then
sql0="select * from news where id="&cstr(request("id"))
else
sql0="select * from news where cataid =35 "
end if
rs0.open sql0,conn,1,1
if rs0.eof and rs0.bof then
response.write "<script>alert('对不起,该信息并不存在!');</Script>"
response.end
else
content=rs0("content")
end if
%>
<tr>
<td><font color="#000000" style="line-height:15pt"><%=content%></font></td>
</tr>
<%
set rs=Nothing
%> 展开
3个回答
展开全部
<%=content%>
这个改成:
<%=Left(content,80)%>
另外提醒一点,英文字符一个字母算一个字符,包括英文符号;
中文文字一个算两个字符,包括中文符号。
所以这里限制80个字符的话,其实是限制了40个中文字,或80个英文字符,这样就造成了内容显示长短不一的问题,所以应该调用下面的函数让你始终显示80个字符。
===========牛B的分割线============
<%
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)), ">", ">"), "<", "<")
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), """), ">", ">"), "<", "<")
End Function
%>
然后显示的时候用:
<%=gotTopic(content,80)%>
这个函数还会自动计算,如果内容大于80个,显示80个以后会自动给你加一个”...“
嘿嘿。。。。。。。。
这个改成:
<%=Left(content,80)%>
另外提醒一点,英文字符一个字母算一个字符,包括英文符号;
中文文字一个算两个字符,包括中文符号。
所以这里限制80个字符的话,其实是限制了40个中文字,或80个英文字符,这样就造成了内容显示长短不一的问题,所以应该调用下面的函数让你始终显示80个字符。
===========牛B的分割线============
<%
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)), ">", ">"), "<", "<")
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), """), ">", ">"), "<", "<")
End Function
%>
然后显示的时候用:
<%=gotTopic(content,80)%>
这个函数还会自动计算,如果内容大于80个,显示80个以后会自动给你加一个”...“
嘿嘿。。。。。。。。
追问
加入代码之后,我调的800,显示的是100个文字,而且800,和880是一样多的
追答
单单改成这个管用吗?
展开全部
简单的可以用<%=left(content,20)%>
想严格点。过滤符号之类特殊字符的话得写函数
<%
Function LeftTrue(str,n)
If len(str)<=n/2 Then
LeftTrue=str
Else
Dim TStr
Dim l,t,c
Dim i
l=len(str)
t=l
TStr=""
t=0
for i=1 to l
c=asc(mid(str,i,1))
If c<0 then c=c+65536
If c>255 then
t=t+2
Else
t=t+1
End If
If t>n Then exit for
TStr=TStr&(mid(str,i,1))
next
LeftTrue = TStr
End If
End Function
%>
用法跟上面一样
<%=LeftTrue(content,20)%>
想严格点。过滤符号之类特殊字符的话得写函数
<%
Function LeftTrue(str,n)
If len(str)<=n/2 Then
LeftTrue=str
Else
Dim TStr
Dim l,t,c
Dim i
l=len(str)
t=l
TStr=""
t=0
for i=1 to l
c=asc(mid(str,i,1))
If c<0 then c=c+65536
If c>255 then
t=t+2
Else
t=t+1
End If
If t>n Then exit for
TStr=TStr&(mid(str,i,1))
next
LeftTrue = TStr
End If
End Function
%>
用法跟上面一样
<%=LeftTrue(content,20)%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<%=left(content,80)%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询