`
兰迪RANDY
  • 浏览: 97743 次
文章分类
社区版块
存档分类
最新评论

《高性能网站建设进阶指南》读书笔记之高性能trim函数

阅读更多
JavaScript中没有用于移除字符串头尾空白的的原生修剪方法,这是其最明显的疏漏之一,最常见的trim函数如下
function trim(text){
    return text.replace(/^\s+|\s+$/g,"");
}


去掉g优化后的方法为:
function trim(text){
    return text.replace(/^\s+/,"").replace(/\s+$/,"");
}

这个方法虽然替换了两次,不过效率还是更高

最好的方式如下:
function trim(text){
    text = text.replace(/^\s+/,"");
    for(var i = text.length -1; i>=0;i--){
        if(/\S/.test(text.charAt(i))){
            text = text.substring(0,i+1);
            break;
        }
    }
    return text;
}


这个trim函数比前两个快的原因是保持正则表达式尽可能的简单。第一行删除了头部的空白,然后通过for循环来清除尾部的空白。循环使用一个非常简单的单字符正则表达式来匹配非空白字符,它清除了字符串尾部的空白后退出循环。
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics