答案:' 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联动三级菜单