最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
JS 去空格 trim() 实战性能优化
时间:2012-09-03 编辑:简简单单 来源:一聚教程网
代码如下 | 复制代码 |
Function.prototype.method = function(name, func) { String.method('trim', function() { |
熟悉吧,/^s+|s+$/g,这样的正则表达式。多少框架在用呢。比如 jQuery 的 trimLeft, trimRight:
代码如下 | 复制代码 |
// Used for trimming whitespace trimLeft = /^s+/, trimRight = /s+$/, |
这是最佳实践么?但我们框架使用的不是这种方法(暂且称为半正则方法)。上次在其他产品组在内部 PK 的时候,说过,为什么我们框架要用下面这样的方法来实现 trim(),而不是用上面的那种。
代码如下 | 复制代码 |
trim: function(){ var str = this.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; } |
原因工友已经说了,因为正则的反向匹配比较慢。我对其性能进行了对比。综合速度和写法上来说,个人还是偏向于第一种写法。因为速度其实相差很少很少。从代码来说第二种比较晦涩并且并字节很多,这对于一个流量很高但需要用 trim() 很少的网站来说,第一种明显比较合适,看看下面的测试结果(自已测试
trim 性能
Preparation code
代码如下 | 复制代码 |
?原来不是半正则的方式最快啊?是的,其实很多高级浏览器中已经默认提供 trim() 了。速度就不用说了,100 倍?哈哈哈。最后,方案如下:
代码如下 | 复制代码 |
if(!String.prototype.trim){ |
-
上一个: 正则表达式去除大部分HTML标记js代码
相关文章
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31
- html area标签解读 10-31
- html使用表单标签实现注册页面代码展示 10-31
- 使用HTML截图并保存为本地图片的代码展示 10-31