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