asp 字符串截取函数
程序员文章站
2022-05-28 16:22:09
asp 字符串截取函数'********************************************************* '函数:cutstr[...
asp 字符串截取函数
'*********************************************************
'函数:cutstr[str(strlen)]
'参数:str,待处理的字符串,strlen,截取的长度
'作者:木木
'日期:2007/7/12
'描述:截取指定长度的字符串
'示例:<%=cutstr("欢迎光临阿里西西",5)%>
'*********************************************************
function cutstr(str,strlen)
if str = "" then
cutstr = "cutstr函数异常:字符串为空"
exit function
end if
'------------来源长度检查
if strlen = "" then
cutstr = "cutstr函数异常:长度未指定"
exit function
end if
if cint(strlen) = 0 then
cutstr = "cutstr函数异常:长度为0"
exit function
end if
'----------检测来源字符长度
dim l,t,c,i
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
cutstr=left(str,i)&".."
exit for
else
cutstr=str
end if
next
cutstr=replace(cutstr,chr(10),"")
end function
''*********************************************************
'函数:strlen[str]
'参数:str,待处理的字符串
'作者:木木
'日期:2007/7/12
'描述:判断字符串长度,汉字长度为2
'示例:<%=strlen("欢迎光临阿里西西")%>
'*********************************************************
function strlen(str)
dim p_len
p_len=0
strlen=0
if trim(str)<>"" then
p_len=len(trim(str))
for xx=1 to p_len
if asc(mid(str,xx,1))<0 then
strlen=int(strlen) + 2
else
strlen=int(strlen) + 1
end if
next
end if
end function
截取左边的n个字符'*********************************************************
'函数:lefttrue(str,n)
'参数:str,待处理的字符串,n,截取的长度
'作者:木木
'日期:2007/7/12
'描述:显示左边的n个字符(自动识别汉字)函数
'示例:<%=lefttrue("欢迎光临阿里西西",6)%>
'*********************************************************
function lefttrue(str,n)
if len(str)<=n/2 then
lefttrue=str
else
dim tstr
dim l,t,c
dim i
l=len(str)
t=l
tstr=""
t=0
for i=1 to l
c=asc(mid(str,i,1))
if c<0 then c=c+65536
if c>255 then
t=t+2
else
t=t+1
end if
if t>n then exit for
tstr=tstr&(mid(str,i,1))
next
lefttrue = tstr
end if
end function
'*********************************************************
'函数:cutstr[str(strlen)]
'参数:str,待处理的字符串,strlen,截取的长度
'作者:木木
'日期:2007/7/12
'描述:截取指定长度的字符串
'示例:<%=cutstr("欢迎光临阿里西西",5)%>
'*********************************************************
function cutstr(str,strlen)
if str = "" then
cutstr = "cutstr函数异常:字符串为空"
exit function
end if
'------------来源长度检查
if strlen = "" then
cutstr = "cutstr函数异常:长度未指定"
exit function
end if
if cint(strlen) = 0 then
cutstr = "cutstr函数异常:长度为0"
exit function
end if
'----------检测来源字符长度
dim l,t,c,i
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
cutstr=left(str,i)&".."
exit for
else
cutstr=str
end if
next
cutstr=replace(cutstr,chr(10),"")
end function
''*********************************************************
'函数:strlen[str]
'参数:str,待处理的字符串
'作者:木木
'日期:2007/7/12
'描述:判断字符串长度,汉字长度为2
'示例:<%=strlen("欢迎光临阿里西西")%>
'*********************************************************
function strlen(str)
dim p_len
p_len=0
strlen=0
if trim(str)<>"" then
p_len=len(trim(str))
for xx=1 to p_len
if asc(mid(str,xx,1))<0 then
strlen=int(strlen) + 2
else
strlen=int(strlen) + 1
end if
next
end if
end function
截取左边的n个字符'*********************************************************
'函数:lefttrue(str,n)
'参数:str,待处理的字符串,n,截取的长度
'作者:木木
'日期:2007/7/12
'描述:显示左边的n个字符(自动识别汉字)函数
'示例:<%=lefttrue("欢迎光临阿里西西",6)%>
'*********************************************************
function lefttrue(str,n)
if len(str)<=n/2 then
lefttrue=str
else
dim tstr
dim l,t,c
dim i
l=len(str)
t=l
tstr=""
t=0
for i=1 to l
c=asc(mid(str,i,1))
if c<0 then c=c+65536
if c>255 then
t=t+2
else
t=t+1
end if
if t>n then exit for
tstr=tstr&(mid(str,i,1))
next
lefttrue = tstr
end if
end function