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

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

复制代码 代码如下:

'//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个汉字
作了两点优化:
第一点:直接获取指定长度的字符,因为不管是全汉字还是全英文,最长不过是全英文长度,超过的字符是绝对淘汰字符。
第二点:使用正则寻找范围内的汉字,并只遍历每个汉字的字数,这样可以最大程度上减少循环次数。

时间: 2024-11-28 16:38:37

asp截取指定英汉混合字符串_支持中文_应用技巧的相关文章

mysql 截取指定的两个字符串之间的内容_Mysql

如 现有字符串 "[]aseabcd[12345]ddxabcdsx[]",要截取"abcd[" 和 "abcd["之后的第一个 "]" 之间的内容 "12345",当然当中的内容长度不是固定的,可以是"123456" 或者其他字符串. 他问我的时候,我第一反应就是想的indexOf,后来查了下 发现mysql中没有indexOf 而是 locate. 经过半个多小时的尝试,最好帮他实现

英汉对照报关常用缩写语_中英文对照

A.W. B(Air Way Bill) 空运提单 A/C (Account) 账目 A/O (Accoun Of) 入账 A/S(At Sight) 见票即付 A/V (Ad Valorem) 从价税  A/W (Actual Weight) 实际重量 AAR (Against All Risks) 投保一切险 ABT (About) 大约.关于 CAN (Air Consignmen Note) 空运的托运单 ADD (Address) 地址 AMD (Amend) 修改 AMT (Amou

英汉对照-成功名人名言_中英文对照

If you wish to succeed, you should use perdistence as your good friend, experiece as your reference, prudence as your brother and hope as your sentry.Thomas Edison, American inventor  如果你希望成功,当以恒心为良友.以经验为参谋.以谨慎为兄弟.以希望为哨兵. --美国发明家爱迪生 Never be unduly e

PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)_php技巧

这样我们就可以拿此函数来做很多用途了,比如:单点登录的token加密传输啦,临时密码啦等等 复制代码 代码如下: /** * @param string $string 原文或者密文 * @param string $operation 操作(ENCODE | DECODE), 默认为 DECODE * @param string $key 密钥 * @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效 * @return string 处理后的 原文或者

js获取字符串长度(支持中文)

length取字符串长度  代码如下 复制代码 <script type="text/javascript"> var str="字符串字节长度为" ; alert(str.length); </script> 中英文,一个汉字相当于2个字符 例1  代码如下 复制代码 <script type="text/javascript"> //一个汉字相当于2个字符     function get_length(s

java-有没有工具类可以截取出指定字符两边的字符串

问题描述 有没有工具类可以截取出指定字符两边的字符串 比如key=value 我要取到key和value不要中间的=号截取出来的可以是一个字符串数组 解决方案 String array[]="key=value".split("="); 解决方案二: strong text 字符串split("="),放到一个数组里面,然后可以用一个加强for循环for(String str:array)遍历出来就OK了 解决方案三: 使用java.util.P

ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法_实用技巧

在ASP.NET开发的网站根目录,有一个名为web.config的文件,顾名思义,这是为整个网站进行配置的文件,其格式为XML格式.这里主要谈谈文件中的<connectionStrings>节. <connectionStrings>节是对连接到数据库的字符串进行配置,由于MS SQL Server与ASP.NET同属于微软的产品,因此是使用ASP.NET开发时首选的数据库是MS SQL Server,本文只讨论对MS SQL Server的连接字符串情况.第一种情况,本地开发时,

jQuery截取指定长度字符串的实现原理及代码_jquery

截取指定长度字符串操作在网站建设中大量使用,尤其是在新闻列表这种类型的操作中大量应用. 下面就是一个截取字符串代码实例: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="htt

jQuery截取指定长度字符串代码_jquery

例子,截取字符串代码. <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery截取字符串操作---www.jb51.net</title> <script type="text/javascript"