`

Javascript中各种trim的实现

阅读更多

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

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

  1. 15.5.4.20   String.prototype.trim ( )   
  2.   
  3. The following steps are taken:   
  4.   
  5. 1.   Call CheckObjectCoercible passing the this value as its argument.   
  6. 2.   Let S be the result of calling ToString, giving it the this value as its argument.   
  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.      of white space is the union of  WhiteSpace and LineTerminator .   
  9. 4.   Return T.   
  10.   
  11. NOTE           The trim function is intentionally generic; it does not require that its this value be a String object. Therefore, it   
  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. String.prototype.trim = function() {  
  2.     //return this.replace(/[(^\s+)(\s+$)]/g,"");//會把字符串中間的空白符也去掉  
  3.     //return this.replace(/^\s+|\s+$/g,""); //  
  4.     return this.replace(/^\s+/g,"").replace(/\s+$/g,"");  
  5. }  

第二种:来自motools:

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

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

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

 

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

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

 

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

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

28
14
分享到:
评论
6 楼 timetenplus 2011-06-21  
linvar 写道
String.prototype.trim = function(){
      return this.replace(/^\s+|\s+$/, '');
      //or return this.replace(/^\s+(.*)\s+$/, "$1");
 }


//or return this.replace(/^\s+(.*)\s+$/, "$1");
《JavaScript高级程序设计》里的trim实现就是这个,但是仔细看了下,其实是有问题的.需要改成这样:or return this.replace(/^\s+(.*)\s*$/, "$1");

把最后那个"+"改成"*"号。

"+"的情况对于字符串末尾有空格的是可以的,对于一个只有开始有空白字符,结尾没有空白字符的字符串是起不了作用的。
5 楼 depravedangel 2011-03-22  
简单说一句,第一种跟第三种一样么?不知道楼主测过没有......
4 楼 hijk123456789 2011-03-14  
3 楼 java_xiaoyi 2011-03-07  
管他新帖老铁,能学到东西就是好铁。。。呵呵
2 楼 linvar 2011-03-03  
String.prototype.trim = function(){
      return this.replace(/^\s+|\s+$/, '');
      //or return this.replace(/^\s+(.*)\s+$/, "$1");
 }
1 楼 xiaohui886688 2011-03-02  
  
试试看看。

相关推荐

    Javascript中实现trim函数的两种方法.docx

    ### JavaScript中实现trim函数的两种方法 在日常的前端开发工作中,我们经常需要对字符串进行操作,其中一种常见的需求就是去除字符串两端的空白字符。尽管现代JavaScript已经内置了`trim()`方法来帮助开发者轻松...

    Javascript中各种trim的实现详细解析

    接着,我们看到JQuery、Mootools、Prototype框架下的trim实现: ```javascript function trim1(str) { return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, ''); } ``` 这里的正则表达式使用了`\xA0`来匹配不间断...

    javascript自定义trim()方法

    然而,为了方便开发者处理字符串,本文将详细介绍如何在JavaScript中自定义实现`trim()`方法。 #### 自定义`trim()`方法 在JavaScript中,可以通过编写简单的函数来自定义实现`trim()`方法。下面将分步骤详细介绍...

    Javascript中实现trim()函数的两种方法

    在JavaScript中我们需要用到trim的地方很多,但是JavaScript又没有独立的trim函数或者方法可以使用,所以我们需要自己写个trim函数来实现我们的目的。 方案一: 以原型方式调用,即obj.trim()形式,此方式简单且使用...

    javascript的trim和日期时间格式化函数

    ### JavaScript中的Trim函数和日期时间格式化函数 在JavaScript中,字符串处理和日期操作是非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用自定义方法实现字符串的Trim功能以及日期...

    一个更高效的JavaScript版trim函数.rar

    JavaScript中的原生`trim()`函数是通过正则表达式来实现的,这可能导致在某些浏览器或环境下执行速度较慢。为了提升效率,开发者通常会寻找替代方法,比如使用循环和字符检查来手动清理字符串边缘的空白。这种自定义...

    js 自定义trim去除字符串左右杂质

    * JavaScript 中不存在 trim() 方法来去除字符串左右的空格,需要自定义 trim() 方法。 * 使用 String.prototype 来扩展 String 对象的功能。 * 使用 eval() 函数将字符串形式的表达式转换为正则表达式。 * 使用 ...

    javascript 字符串去掉左右空格

    javascript 字符串去掉左右空格, 用正则实现, trim()功能, 简单易用.

    JavaScript如何自定义trim方法

    在JavaScript中,自定义trim方法是一个简单且直接的过程,主要通过使用字符串的charAt()方法结合while循环或者正则表达式来实现。charAt()方法用于获取字符串中的字符,而正则表达式则可以用来匹配需要被替换或删除...

    js设置兼容trim函数

    #### 知识点一:JavaScript中的`trim()`方法 `trim()` 方法用于删除字符串两端的空白字符(包括空格、制表符、换页符等)。此方法不会改变原始字符串,而是返回一个新的字符串。 **语法**: ```javascript string....

    javascript中使用正则表达式实现删除字符串中的前后空格

    在JavaScript中,处理字符串是一个常见的任务,特别是在开发前台应用程序时。用户输入的内容往往包含不必要的空格,这些空格可能出现在字符串的开始、结束或两者都有。为了确保数据的准确性和整洁性,经常需要编写...

    js-trim()方法IE无效的解决办法

    在JavaScript中,`trim()`方法主要用于去除字符串首尾的空白字符。此方法在现代浏览器中通常能够很好地工作,但在Internet Explorer(IE)的一些版本中可能存在兼容性问题。这是因为原生的`trim()`方法是在...

    JavaScript中文参考手册

    在网页交互中,JavaScript通过监听和处理DOM(文档对象模型)事件来实现用户交互,如click、mouseover等。同时,JavaScript可以直接操作DOM元素,添加、删除、修改HTML元素,实现动态网页效果。 7. **异步编程** ...

    JavaScript的URL encode decode源代码,ip验证,TRim

    在标题提到的“JavaScript的URL encode decode源代码,ip验证,TRim”中,我们将探讨这三个关键概念。 1. URL编码与解码: 在JavaScript中,我们经常需要对URL中的特殊字符进行编码,以确保它们在HTTP请求中被正确...

    javascript去掉两边空格

    本文将详细介绍如何在JavaScript中去掉字符串两边的空格,并提供几种不同的实现方法。 ### 方法一:使用内置方法 `trim()` JavaScript提供了一个内置方法 `trim()`,可以直接去掉字符串两边的空格。这是最简单且...

    js_trim()十二种实现.txt

    - 这种方法是所有实现中最优的一种。 - 当处理较长的字符串时,这种方法的速度优势尤为明显。 - 两个独立的正则表达式触发了JavaScript引擎内部的一些优化机制,如预检查所需字符以及字符串开头锚点优化等。 - **...

    常用javascript案例大全

    JavaScript 技巧大全 JavaScript 是一种广泛应用于 Web 开发中的脚本语言,下面是常用的 JavaScript 案例大全,包括原生 JavaScript 实现字符串长度...这些技巧可以帮助开发者更好地使用 JavaScript 实现各种功能。

    js trim 函数

    javascript 的 trim 函数的实现,去掉字符串的左右空格,由于只使用了String的原生函数,没有使用正则,运算速度极快,是0毫秒级别的,推荐大家使用.

Global site tag (gtag.js) - Google Analytics