当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP实现将长的标题用省略号收尾

ASP
ASP基础讲座(下)
解决IIS5 HTTP500内部错误
ASP 3.0高级编程(四十六)
ASP 3.0高级编程(四十五)
ASP 3.0高级编程(四十四)
ASP 3.0高级编程(四十三)
ASP 3.0高级编程(四十二)
ASP 3.0高级编程(四十一)
ASP 3.0高级编程(三十九)
ASP 3.0高级编程(三十八)
ASP 3.0高级编程(三十七)
ASP 3.0高级编程(三十六)
ASP 3.0高级编程(三十五)
ASP 3.0高级编程(三十四)
ASP 3.0高级编程(三十三)
ASP 3.0高级编程(三十二)
ASP 3.0高级编程(三十一)
ASP错误代码说明
jscript错误代码及相应解释大全
ASP错误处理

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 54 ::
收藏到网摘: n/a

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

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

1、原理:

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

2、涉及函数:

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

[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