ASP截取过长的标题代码
Time:2015/08/31 02:30:02 Click:
今天,同学桂哥问了一个在ASP程序中关于文章的标题截取问题。在文章列表的时候,如果标题过长,往往会撑破表格破坏页面形象。一般做法是略去超长部分而以省略号代替。比如要取前10个字符。如果想以表或者的形式显示所有标题或文章,那么一般来讲,标题或者内容,只需要显示一部分就可以了.那么怎么截取呢?下面举个例子。
<%
Function GetLen(Str) '检测包含汉字字串的长度,一个汉字的长度为2,英文字母的长度为1
Dim Strlen,i
GetLen = 0
Strlen=Len(Str)
IF IsNull(Str) Then Exit Function End If
For i = 1 To Strlen
If Asc(Mid (Str,i,1)) < 0 Then
GetLen = GetLen + 2
Else
GetLen = GetLen + 1
End If
Next
End Function
Function GetLeft(Str,L,Alter) '获取字符串的长度并根据要求裁切,按汉字的长度计算,1个汉字的长度=2个英文字母的长度,其中str表示呆截取的字符串变量或常量,L表示截取后保留的长度,Alter表示截取后补的字符,就是桂哥你说的在后面加"....".
Dim i,j
j=1
GetLeft = ""
If GetLen(Str)>2*L Then
For i=1 To L
If Asc(Mid(Str,j,1)) < 0 Or Asc(Mid(Str,j+1,2)) < 0 Then
GetLeft=GetLeft & Mid(Str,j,1)
j=j+1
Else
GetLeft=GetLeft & Mid(Str,j,2)
j=j+2
End If
Next
If Alter<>"" Then
GetLeft = GetLeft & Alter
End If
Else
GetLeft = Str
End If
End Function
%>
说明几点:
- Function GetLen(Str)函数是计算字符串长度的,我的计算规则是一个汉字的长度为2,英文字母的长度为1.
- Function GetLeft(Str,L,Alter) 函数是截断的函数.
- 譬如要截断字符串"代码测试",使之只保留"代码",然后后补以"....",那么只需要
<%
GetLeft("代码测试",2,"....")
%>
另外,关于怎么运用在多个的标题中去,一般,比如一个栏目下面列出10个文章标题,他不可能没一篇文章都通过代码去调去,一般都是用一个函数去控制去数据库里面调取改栏目下文章的数量,然后显示在页面上满的。所以,你只需要根据代码的内容,讲调用代码整合在截取代码里面就可以了!~