用正则提升字符串处理速度
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;
} from:asp学习网/title:用正则提升字符串处理速度/ time:2006-10-15 23:29:16
本文主题