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

来源:asp之家 时间:2011-04-19 10:39:00 

说明:本函数作用是截取指定英汉混合字符串,并保持显示长度一至。就是将一个汉字当两英文来截取。

用途:一般会用在标题显示列表,可以避免截取的字符串参插不齐的现象。
程序代码

'//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,截取,字符串,中文
0
投稿

猜你喜欢

  • 判断浏览器是否接受 Cookie

    2009-07-28 17:52:00
  • 全局字体最佳实践

    2009-08-13 14:37:00
  • 页面链接方式的统一性

    2008-03-24 17:02:00
  • 如何获取文件的名称和扩展名?

    2009-11-23 20:50:00
  • 数据库中聚簇索引与非聚簇索引的区别[图文]

    2012-02-25 19:38:23
  • CSS中expression的用法

    2008-09-11 14:18:00
  • 语义化提高页面质量

    2007-10-07 11:56:00
  • 可爱动态背景输入框

    2009-05-07 13:50:00
  • JavaScript caller与callee属性

    2009-01-19 13:39:00
  • 一个div层打开显示效果 js

    2008-05-19 12:35:00
  • 自适应css布局——流动布局新时代[译]

    2009-08-13 12:28:00
  • 如何设计广告的用户体验?

    2007-12-20 13:12:00
  • 在TABLE中模仿excel的单元格移动

    2007-12-22 12:03:00
  • 图片预载ImageLoader 1.1 Release

    2008-11-04 20:04:00
  • asp用err.raise自定义错误信息

    2007-09-12 19:38:00
  • Oracle 创建用户及数据表的方法

    2009-09-26 18:25:00
  • 自定义404错误页面实现自动跳转

    2007-12-10 18:25:00
  • 原创一个AJAX类

    2008-07-24 13:29:00
  • 间歇向上无缝翻滚代码

    2008-05-05 12:30:00
  • 网页用多宽才更合适?

    2009-04-07 14:07:00
  • asp之家 网络编程 m.aspxhome.com