ASP和_截取字符串中的指定混合支持中国
说明:此功能的功能是截取指定的英文混合字串,并将显示长度保持在一对一,即用两个英文截取一个汉字。用途:一般用于标题显示列表中,可以避免被截取的字符串插入。
程序代码
复制代码代码如下所示:
要处理的字符串 / / a_strstring
/ / a_intlen英文字符数
/ / a_straddstring如果a_strstring在字符添加后缀,如:…它可以是空的。
功能cutstring(ByVal a_strstring,ByVal a_intlen,ByVal a_straddstring)
昏暗的mm_objre,mm_objms,mm_objmh
昏暗的mm_strcut,mm_intlen
集mm_objre = new RegExp
mm_objre全球= true'global搜索。
mm_objre。IGNORECASE = true'does不区分情况的案例
mm_objre。模式={ ^ 设备- xff }
mm_intlen = a_intlen
如果len(a_strstring)< = a_intlen然后
mm_strcut = a_strstring
其他的
mm_strcut =左(a_strstring,mm_intlen)
集mm_objms = mm_objre.execute(mm_strcut)
如果mm_objms计数<> mm_intlen然后。
每个mm_objmh在mm_objms
如果mm_objmh。美国福斯特英德克斯< mm_intlen然后
mm_intlen = mm_intlen-1
其他的
退出
最后如果
下一个
其他的
mm_intlen = mm_intlen / 2
最后如果
mm_strcut =左(a_strstring,mm_intlen)a_straddstring
最后如果
cutstring = mm_strcut
集mm_objre =没有
端功能
这和网上流行的不一样。它使用正则表达式获取非ANSI字符。这里默认的ANSI是汉字。如果有偏差,我们可以修改正则形式来达到目的。首先指出函数的长度取决于英文字符的数量。它被指定为10,意思是10个英语或5个汉字。
两点优化:
第一点是直接获取指定长度的字符,因为无论是整个汉字还是整个英文,最长的都是英文长度,超过字符的字符是绝对消去字符。
第二:在汉字的范围内使用正则搜索,只遍历汉字的个数,这样可以减少循环次数。