ASP实现将长的标题用省略号收尾

王朝asp·作者佚名  2006-11-24
宽屏版  字体: |||超大  

从数据库中提取长长的文章,总是有碍网页的排版布局。

所以,想固定地提取一部分字符,然后后面有……替代。

1,原理:

判断文章的长度是否超过规定的长度,若超过则只显示规定长度的大学,否则完整显示。

2,涉及函数:

len():返回字符串长度或者变量的字节长度。

运行代码框

<script language="vbs">

cnbruce="my name is cnbruce"

len_cn=len(cnbruce)

alert(len_cn)

</script>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

left():截取一个字符串的前部分

运行代码框

<script language="vbs">

cnbruce="my name is cnbruce"

left_cn=left(cnbruce,10)

alert(left_cn)

</script>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

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>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

4,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)%>

OK,相信以后遇到这些问题应该是NO PROBLEM

为了解决中英文截取的问题,建议大家使用如下函数:

Function gotTopic(str,strlen)

if str="" then

gotTopic=""

exit function

end if

dim l,t,c, i

str=replace(replace(replace(replace(str,"&nbsp;"," "),"&quot;",chr(34)),"&gt;",">"),"&lt;","<")

l=len(str)

t=0

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

gotTopic=left(str,i) & "…"

exit for

else

gotTopic=str

end if

next

gotTopic=replace(replace(replace(replace(gotTopic," ","&nbsp;"),chr(34),"&quot;"),">","&gt;"),"<","&lt;")

End Function

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有