function getInterceptedStr(sSource, iLen){
var d=new Date();
if(getStrActualLen(sSource) <= iLen){
return sSource;
}
var ELIDED = "";
var str = "";
var l = 0;
var schar;
for(var i=0; schar=sSource.charAt(i); i++){
str += schar;
l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1);
if(l >= iLen - ELIDED.length){
break;
}
}
str += ELIDED;
(alert)(new Date()-d+"ms")
return str;
} 以上是网易相册的一个字符串取定长的函数。
以下是我修改的
function getInterceptedStr1(sSource,iLen)
{
var d=new Date();
var el="",hzlen;
var re=new RegExp("^(.{"+(iLen)+"}).*$","i")
try{hzlen=sSource.replace(re,"$1").match(/[^\x00-\xff]/g).length}catch(e){hzlen=0;}
if(sSource.length+hzlen<=iLen)return sSource;
re.compile("^(.{"+(iLen-Math.ceil(hzlen/2))+"}).*$","i")
alert(new Date()-d+"ms")
return sSource.replace(re,"$1").slice(0,iLen-3)+el;
}
用正则提升字符串处理速度
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]
相关文章:
- 5do8的几个正则(2007-8-10 4:47:45)
- 抓取html中的内容(2007-7-15 7:54:15)
- SQL Server中使用正则表达式(2007-7-15 4:29:41)
- 正则表达式结合数组提取文章中的文件名(2007-5-14 6:29:52)
- 正则对象中Exec(ute)方法的应用举例(2007-5-6 10:24:53)
- 正则表达式的作用(2007-4-21 5:2:37)
- 正则表达式:选择与编组(2007-4-2 11:9:19)
- 正则表达式在网页处理中的应用四则(2007-4-1 4:1:51)
- 转换html代码(2007-1-2 10:43:16)
- 字符匹配(2006-11-19 6:15:34)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
