惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Martin Fowler
Martin Fowler
Last Week in AI
Last Week in AI
罗磊的独立博客
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
博客园_首页
人人都是产品经理
人人都是产品经理
量子位
美团技术团队
The Cloudflare Blog
小众软件
小众软件
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
博客园 - Franky

博客园 - 清雨轩

用dom生成html文件.的常见问题 div+css制作企业网站经验收集 appendNode? 可以直接一个节点树 - 清雨轩 - 博客园 php(alexa排名查询) 下拉菜单 美工版(不用写代码) CSS学习随笔 windows2003 ftp及相关权限 php出现Unable to load dynamic library 'c:\php\extensions\php_mssql.dll' - 清雨轩 win2003的服务器配置. 关于引用,还是按值. 开发时会遇到..注意 个人javascript作品集 事件监听是可吃CPU的事情。以后还是不用事件监听 faq:responseXML has no properties in firefox or responseXML is null 正则表达式 不允许为空 下拉头像菜单 表单检测函数 [原创]使用js+xml制作的IE和FF都支持的树型菜单(程序不到4k哦) 个人觉得比较经典的菜单(来源:kijiji.cn) [转载]纯js解决小偷的乱码.(强)
用正则改变字符串的处理速度。
清雨轩 · 2006-10-05 · via 博客园 - 清雨轩

 1function getInterceptedStr(sSource, iLen){
 2var d=new Date();
 3    if(getStrActualLen(sSource) <= iLen){
 4        return sSource;
 5    }

 6    var ELIDED = "";
 7    var str = "";
 8    var l = 0;
 9    var schar;
10    for(var i=0; schar=sSource.charAt(i); i++){
11        str += schar;
12        l += (schar.match(/[^\x00-\xff]/!= null ? 2 : 1);
13        if(l >= iLen - ELIDED.length){
14            break;
15        }

16    }

17    str += ELIDED;
18(alert)(new Date()-d+"ms")
19    return str;
20}

 以上是网易相册的一个字符串取定长的函数。
 以下是我修改的

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;
}

 测试2个函数速度变化。
 
演示2个函数