所以,想固定地提取一部分字符,然后后面有……替代。
1,原理:
判断文章的长度是否超过规定的长度,若超过则只显示规定长度的大学,否则完整显示。
2,涉及函数:
len():返回字符串长度或者变量的字节长度。
首先用vbs代码检测字节长度,代码:
<script language=”vbs”>
cnbruce=”my name is cnbruce”
len_cn=len(cnbruce)
alert(len_cn)
</script>
left():截取一个字符串的前部分,代码:
<script language=”vbs”>
cnbruce=”my name is cnbruce”
left_cn=left(cnbruce,10)
alert(left_cn)
</script>
3,主要程序:判断内容长度是否大于给定值,据结果做相应操作,代码:
<script language=”vbs”>
text=”123 4567 8fds90 abcde fghxcfv”
i=10
if len(text)>i then 如果文本长度大于给定的值
text=left(text,i) 则提取前段的i位的字符串
alert (text&”…”)
else
alert (text)
end if
</script>
4,asp中应用
以上是在客户端脚本调试,和asp也是大同小异:最主要的是函数功能,asp代码如下:
<%
text=rs(“content”) 将数据库字段值赋到某变量上
i=10 定义固定大小
if len(text)>i then 如果文本长度大于给定的值
text=left(text,i) 则提取前段的i位的字符串
response.write (text&”…”)
else
response.write (text)
end if
%>
5,为了方便,做成函数,代码:
<%
function conleft(content,i)
if len(content)>i then
content=left(content,i)
response.write (content&”…”)
else
response.write (content)
end if
end function
%>
调用方法:<%call conleft(rs(“content”),10)%>
以上的代码适合在处理纯英文或纯中文字串的时候用,如果一个字串同时包含了中文与英文,长度就会不同,解决方法:
<%
function getstring(str,strlen)
dim l,t,c, i
l=len(str)取字符串长度
t=0
for i=1 to l循环一次
c=abs(asc(mid(str,i,1)))取得每个字符的asc码
if c>255 then如果asc码大于255就为汉字
t=t+2
else
t=t+1
end if
if t>=strlen then
getstring=left(str,i)&”…”
exit for
else
getstring=str&” “
end if
next
end function
%>
同样做成了函数,调用方法:<%=getstring (rs(“content”),46)%>