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

ASP
asp分页(自己整理的2个分页程序)
ASP常用的系统配置函数
雨哲防采集策略之列表篇
雨哲浅谈关于防采集而不影响收录内容篇
asp数据库连接函数
ajax XMLHTTP Post Form时的表单乱码综合解决
ASP注入详细命令40条
用ASP实现MSSQL用户密码破解
ASP创建对象的两种方法比较
ASP字符串转换为整形、双精度型、布尔
ASP计算str2在str1中出现的次数
asp采集抓取网上房产信息的代码
ASP注册登陆实例代码
ASP中使用FileSystemObject时提高性能的方法
分享一个好东东,动态Include文件 (Dynamic File Includes)
解决 JScript 中使用日期类型数据时出现类型错误的问题
在ASP里面创建GUID
在JScript中使用缓存技术的实际代码
ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验
海阳2006+功能中的潜水王

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 211 ::
收藏到网摘: 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