当前位置:  开发笔记 > 编程语言 > 正文

在javascript中修剪()的最佳方法是什么?

如何解决《在javascript中修剪()的最佳方法是什么?》经验,为你挑选了9个好方法。

问题说明了一切; JS似乎没有原生的trim()方法.



1> Darryl Hein..:

jQuery的最短形式:

string = $.trim(string);

链接



2> Pat..:

根据这个页面,最好的全能方法是

return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

当然,如果您使用的是jQuery,它将为您提供优化的trim方法.


\ s\s*是多余的.
这是一个旧线程,同时本机修剪是用Javascript实现的。Pat的正则表达式以及Chris MacDonald提到的trim11都非常慢,而在某些浏览器中,jQuery的修剪也很慢(http://jsperf.com/mega-trim-test/16)。更快速的修剪实现在这里:http://stackoverflow.com/a/12547889/1691517。

3> K. R. ..:

我知道这个问题很古老但是现在,Javascript确实有一个原生的.trim()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim



4> gizmo..:

好吧,正如很多人总是说的那样,trim函数运行得很好,但是如果你不想仅使用整个框架来执行修剪,那么查看它的实现可能会很有用.所以这里是:

function( text ) { return (text || "").replace( /^(\s|\u00A0)+|(\s|\u00A0)+$/g, "" );}

与此处提出的其他解决方案相比,我在此实现中看到的主要优点是:

'g'标志,允许您在多行字符串上执行修剪

(text ||"")语法确保函数始终有效,即使传递的参数为null或未定义.



5> Richard Turn..:

正如其他几个人已经指出的那样,通常最好通过使用第三方JS库来做这种事情.并不是修饰()是一个复杂的功能来自己构建,但有许多功能不是您可能需要的JavaScript本机并最终自己编写,使用库很快就会变得更具成本效益.

当然,使用JS库的另一个好处是作者努力确保这些功能可以在所有主流浏览器中运行,这样您就可以编写标准接口并忘记Internet Explorer与所有浏览器之间的烦恼差异其他浏览器.



6> harpo..:

@ Pat的一个稍微小一点的版本.

return str.replace( /^\s+|\s+$/g, '' );



7> paxdiablo..:

对于ltrim,将没有任何东西替换为锚定在字符串开头的空格:

str2 = str.replace(/^\s+/,'');

对于rtrim,将没有任何东西替换为锚定在字符串末尾的空格:

str2 = str.replace(/\s+$/,'');

修剪:

str2 = str.replace(/^\s+|\s+$/g,'');

这些都使用正则表达式来完成实际工作.



8> Benry..:

为什么不修改String原型?为什么不从开源库窃取修剪函数,就像我在这里使用YUI一样?(你真的需要为这个简单的设备加载和整个框架吗?)把它们放在一起你得到这个:

String.prototype.trim = function() {
    try {
        return this.replace(/^\s+|\s+$/g, "");
    } catch(e) {
        return this;
    }
}

var s = " hello ";
alert(s.trim() == "hello"); // displays true



9> Ionuț G. Sta..:

使用Ariel Flesler的快速修剪功能:

// Licensed under BSD
function myBestTrim( str ){
 var start = -1,
  end = str.length;
 while( str.charCodeAt(--end) < 33 );
 while( str.charCodeAt(++start) < 33 );
 return str.slice( start, end + 1 );
};

不过,我的解决方案就是这样(因为Firefox 3.5及更高版本中的String对象已经有了一个trim方法):

String.prototype.trim = String.prototype.trim || function () {
    var start = -1,
        end   = this.length;

    while( this.charCodeAt(--end) < 33 );
    while( this.charCodeAt(++start) < 33 );

    return this.slice( start, end + 1 );
};

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有