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
%>

说明几点:

  1. Function GetLen(Str)函数是计算字符串长度的,我的计算规则是一个汉字的长度为2,英文字母的长度为1.
  2. Function GetLeft(Str,L,Alter) 函数是截断的函数.
  3. 譬如要截断字符串"代码测试",使之只保留"代码",然后后补以"....",那么只需要
    <%
    GetLeft("代码测试",2,"....")
    %>

另外,关于怎么运用在多个的标题中去,一般,比如一个栏目下面列出10个文章标题,他不可能没一篇文章都通过代码去调去,一般都是用一个函数去控制去数据库里面调取改栏目下文章的数量,然后显示在页面上满的。所以,你只需要根据代码的内容,讲调用代码整合在截取代码里面就可以了!~

TAG
TOP

四川尚狐网络@2012 版权所有
蜀ICP备12016524号-2

立即咨询
成都网站建设,成都做网站,四川尚狐网络
40f13d50b73e104f832ed1b719ae6935