网站地图    收藏   

主页 > 前端 > javascript >

JS 去空格trim()最佳实践

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 正则的反向匹配比较慢。我对其性能进行了对比。综合速度和写法上来说,个人还是偏向于第一种写法。因为速度其实相差很少很少。从代码来说第二种比较晦涩并且并字节很多,这对...

方案如下:

 代码如下 复制代码

if(!String.prototype.trim){
    String.prototype.trim = function(){
        return this.replace(/^s+|s+$/g, '');
    }
}

上面代码测试性能上15S,后来国外网站找到了优化方法

 代码如下 复制代码

function trim10 (str) {
 var whitespace = ' nrtfx0bxa0u2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200au200bu2028u2029u3000';
 for (var i = 0; i < str.length; i++) {
  if (whitespace.indexOf(str.charAt(i)) === -1) {
   str = str.substring(i);
   break;
  }
 }
 for (i = str.length - 1; i >= 0; i--) {
  if (whitespace.indexOf(str.charAt(i)) === -1) {
   str = str.substring(0, i + 1);
   break;
  }
 }
 return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}

相对起来下面更好

 代码如下 复制代码

function trim11 (str) {
 str = str.replace(/^s+/, '');
 for (var i = str.length - 1; i >= 0; i--) {
  if (/S/.test(str.charAt(i))) {
   str = str.substring(0, i + 1);
   break;
  }
 }
 return str;
}

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论