Javascript中各种trim的实现

发布于 2022-09-05 19:23:03 字数 3505 浏览 7 评论 0

本帖最后由 听老歌 于 2011-03-02 15:02 编辑

转:justjavac

Javascript中各种trim的实现

说到trim,其实这真的让无数前端郁闷。比如在处理input框里内容的时候,都会需要处理input内容的左右空格。但让人郁闷的是,String里居然没有原生方法,而每个人的实现方法都会不一样,效率也各有不同。

但是,新版的ECMA-262里已经表示有此方法了:

ECMA-262(V5)

  1. 1.15.5.4.20   String.prototype.trim ( )   
  2. 2.  
  3. 3.The following steps are taken:   
  4. 4.  
  5. 5.1.   Call CheckObjectCoercible passing the this value as its argument.   
  6. 6.2.   Let S be the result of calling ToString, giving it the this value as its argument.   
  7. 7.3.   Let T be a String value that is a copy of S with both leading and trailing white space removed. The definition   
  8. 8.     of white space is the union of  WhiteSpace and LineTerminator .   
  9. 9.4.   Return T.   
  10. 10.  
  11. 11.NOTE           The trim function is intentionally generic; it does not require that its this value be a String object. Therefore, it   
  12. 12.can be transferred to other kinds of objects for use as a method.   

复制代码本文摘自http://www.cnblogs.com/snandy/archive/2011/02/26/1965866.html,只是经过我自己的整理了啦。

第一种:这种是大多数人都会写的,也是流传最多的代码了吧?

JavaScript代码

  1. 1.String.prototype.trim = function() {  
  2. 2.    //return this.replace(/[(^s+)(s+$)]/g,"");//會把字符串中間的空白符也去掉  
  3. 3.    //return this.replace(/^s+|s+$/g,""); //  
  4. 4.    return this.replace(/^s+/g,"").replace(/s+$/g,"");  
  5. 5.}  

复制代码第二种:来自motools:

JavaScript代码

  1. 1.function trim(str){  
  2. 2.    return str.replace(/^(s|xA0)+|(s|xA0)+$/g, '');  
  3. 3.}  

复制代码第三种:这是jQuery的,jquery的方法类似于第一种:

JavaScript代码

  1. 1.function trim(str){  
  2. 2.    return str.replace(/^(s|u00A0)+/,'').replace(/(s|u00A0)+$/,'');  
  3. 3.}  

复制代码第四种是来自所摘博客中最写的:Steven Levithan 在进行性能测试后提出了在JS中执行速度最快的裁剪字符串方式,在处理长字符串时性能较好:

JavaScript代码

  1. 1.function trim(str){  
  2. 2.    str = str.replace(/^(s|u00A0)+/,'');  
  3. 3.    for(var i=str.length-1; i>=0; i--){  
  4. 4.        if(/S/.test(str.charAt(i))){  
  5. 5.            str = str.substring(0, i+1);  
  6. 6.            break;  
  7. 7.        }  
  8. 8.    }  
  9. 9.    return str;  
  10. 10.}  

复制代码博客中还写了这么一点,那就是Molliza Gecko 1.9.1引擎中还给String添加了trimLeft ,trimRight 方法。

这让我想起了PHP的代码,比如ltrim,rtrim,trim之类的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文