« Asp数组排序函数-冒泡法HTTP 500.100 - 内部服务器错误 - ASP 错误(专业技术人员) »

用正则提升字符串处理速度

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/ ]

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。