当前位置:编程学习 > asp >>

asp截取、测量字符串

答案:

' SubStr(str,vnum)
' 截取、测量字符串
'
' #####################################################
'
' str 为原始字符串
' vnum 为截取长度
'
' #####################################################
'
' a = SubStr("这是一个中文字符串",10)        ' Return "这是一个..",截取长度为 10,超出部分用 .. 表示
' a = SubStr("这是一个中文字符串",0)        ' Return "这是一个中文字符串",截取长度为 0,表示不进行截取
' a = SubStr("这是一个中文字符串",-1)        ' Return 18,截取长度为 -1,表示测量该字符串长度

Function SubStr(str,vnum)
    Dim vstr,m,n,rstr,tstr,tnum,i
    vstr=str
    m=0:n=0:tnum=0:rstr="":tstr=""
    tstr=ExpStr(vstr,"&#[\d]*;","||")
    vstr=Replace(vstr&"","<br>",Chr(10))
    For i=1 To Len(vstr)
        If Asc(Mid(vstr,i,1)) < 0 Then
            m=m+2
            rstr=rstr&Mid(vstr,i,1)
        Else
            If TypeName(tstr)="Variant()" And Mid(vstr,i,1)="&" Then
                If Mid(vstr,i,Len(tstr(tnum)))=tstr(tnum) Then
                    If CDbl(Replace(Replace(tstr(tnum),";",""),"&#",""))>255 Then
                        m=m+2
                    Else
                        m=m+1
                    End if
                    rstr=rstr&tstr(tnum)
                    i=i+Len(tstr(tnum))-1
                    tnum=tnum+1
                Else
                    m=m+1
                    rstr=rstr&Mid(vstr,i,1)
                End If
            Else
                m=m+1
                rstr=rstr&Mid(vstr,i,1)
            End If
        End If
        If vnum>0 Then
            If m+2>=vnum Then
                If substr(rstr,-1)<substr(vstr,-1)-2 Then
                    rstr=rstr&".."
                Else
                    rstr=vstr
                End If
                substr=rstr
                Exit Function
            End If
        End If
    Next
    If vnum=-1 Then
        substr=m
    Else
        substr=vstr
    End If
End Function

上一个:asp转换字符串编码
下一个:asp联动三级菜单

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,