asp截取指定英汉混合字符串_支持中文
2008-10-11 00:00
537 查看
说明:本函数作用是截取指定英汉混合字符串,并保持显示长度一至。就是将一个汉字当两英文来截取。
用途:一般会用在标题显示列表,可以避免截取的字符串参插不齐的现象。
程序代码
这个和目前网上流行的不太一样,用的是正则式来获取非ANSI字符(这里默认非ANSI字符为汉字,如果有偏差可以修改正则式来达到目的)。先注明一点:函数指定长度以英文字符数为准。即是指定为10,含义为10个英文或5个汉字
作了两点优化:
第一点:直接获取指定长度的字符,因为不管是全汉字还是全英文,最长不过是全英文长度,超过的字符是绝对淘汰字符。
第二点:使用正则寻找范围内的汉字,并只遍历每个汉字的字数,这样可以最大程度上减少循环次数。
用途:一般会用在标题显示列表,可以避免截取的字符串参插不齐的现象。
程序代码
'//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个汉字
作了两点优化:
第一点:直接获取指定长度的字符,因为不管是全汉字还是全英文,最长不过是全英文长度,超过的字符是绝对淘汰字符。
第二点:使用正则寻找范围内的汉字,并只遍历每个汉字的字数,这样可以最大程度上减少循环次数。
相关文章推荐
- asp.net指定长度截取字段省略(中英文混合字符串)
- 用C#截取指定长度的中英文混合字符串 改进版
- [导入]用C#截取指定长度的中英文混合字符串 改进版
- JS~字符串长度判断,超出进行自动截取(支持中文)
- JS~字符串长度判断,超出进行自动截取(支持中文)
- 用C#截取指定长度的中英文混合字符串的最终算法
- 在C#中截取指定长度的中文字符串
- c#的中英文混合字符串截取指定长度,startidx从0开始
- 中英文混合时截取固定字符串长度(中文算两个长度)
- javascript截取字符串(支持中英文混合)
- 用C#截取指定长度的中英文混合字符串(转)
- javascript截取字符串(支持中英文混合)
- lua 含中文的字符串处理--分离字符、计算字符数、截取指定长度
- 用C#截取指定长度的中英文混合字符串
- JS字符串长度判断,超出进行自动截取的实例(支持中文)
- 收藏几个支持中文的PHP字符串截取函数
- 将汉字字母混合字符串按指定字节截取长度
- 支持多种编码的中文字符串截取函数! AND 函数实现解压功能
- Smarty截取字符串(中文和英文均支持)