当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp截取指定英汉混合字符串_支持中文

ASP
ASP实例:是否支持XmlHttp组件的判断
ASP对XML文档中文本的增加、删除、修改、查看
ASP操作XML文件的主要方法和实现
asp控制xml数据库的6段代码
ASP操作XML的类
ASP关于类的Let,Set和Get的用法的异同
ASP错误解决:800a003a错误
XMLHTTP Post Form时的表单乱码
IIS7.0在Vista系统下安装注意事项
asp文件打不开的原因
asp根据表单自动生成sql语句的函数
彻底解决XP下IIS无法解释ASP和PHP的问题
ASP教程:0177:800401f3错误解决
Service Unavailable错误的解决
ASP留言本教程
ASP教程:6大对象和数据库操作简单学
配置IIS蜜罐与黑客攻击
WEB共享与IIS相结合快速建立本地网站
IIS6架设网站的问题总结
HTTP 500 - 内部服务器错误的解决

ASP 中的 asp截取指定英汉混合字符串_支持中文


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 128 ::
收藏到网摘: n/a

本函数作用是截取指定英汉混合字符串,并保持显示长度一至。就是将一个汉字当两英文来截取。 说明:本函数作用是截取指定英汉混合字符串,并保持显示长度一至。就是将一个汉字当两英文来截取。
用途:一般会用在标题显示列表,可以避免截取的字符串参插不齐的现象。
程序代码
复制代码 代码如下:

'//A_strString要处理的字符串
'//A_intLen以英文字符数为准
'//A_strAddString如果A_strString有截取字符时添中的后缀,如:...,可以为空
function CutString(byval A_strString,byval A_intLen,byval A_strAddString)
dim MM_objRe,MM_objMs,MM_objMh
dim MM_strCut,MM_intLen
set MM_objRe=new RegExp
MM_objRe.Global=true'全局搜索
MM_objRe.IgnoreCase=true'不区分大小写
MM_objRe.Pattern="[^\x00-\xff]"
MM_intLen=A_intLen
if len(A_strString)<=A_intLen then
MM_strCut=A_strString
else
MM_strCut=left(A_strString,MM_intLen)
set MM_objMs=MM_objRe.execute(MM_strCut)
if MM_objMs.count<>MM_intLen then
for each MM_objMh in MM_objMs
if MM_objMh.FirstIndex<MM_intLen then
MM_intLen=MM_intLen-1
else
exit for
end if
next
else
MM_intLen=MM_intLen/2
end if
MM_strCut=left(A_strString,MM_intLen) & A_strAddString
end if
CutString=MM_strCut
set MM_objRe=nothing
end function

这个和目前网上流行的不太一样,用的是正则式来获取非ANSI字符(这里默认非ANSI字符为汉字,如果有偏差可以修改正则式来达到目的)。先注明一点:函数指定长度以英文字符数为准。即是指定为10,含义为10个英文或5个汉字
作了两点优化:
第一点:直接获取指定长度的字符,因为不管是全汉字还是全英文,最长不过是全英文长度,超过的字符是绝对淘汰字符。
第二点:使用正则寻找范围内的汉字,并只遍历每个汉字的字数,这样可以最大程度上减少循环次数。