协慌网

登录 贡献 社区

在 JavaScript 中修剪字符串?

如何修剪 JavaScript 中的字符串?

答案

自 IE9 + 以来的所有浏览器都有trim()

对于那些不支持trim()浏览器,您可以使用MDN 中的此 polyfill:

if (!String.prototype.trim) {
    (function() {
        // Make sure we trim BOM and NBSP
        var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
        String.prototype.trim = function() {
            return this.replace(rtrim, '');
        };
    })();
}

看到这个:

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

String.prototype.ltrim=function(){return this.replace(/^\s+/,'');};

String.prototype.rtrim=function(){return this.replace(/\s+$/,'');};

String.prototype.fulltrim=function(){return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');};

如果您已经在使用该框架,那么jQuery的修剪很方便。

$.trim('  your string   ');

我经常使用 jQuery,因此使用它修剪字符串对我来说很自然。但是有可能在那里对 jQuery 产生强烈反对? :)

虽然上面有一堆正确的答案,但应该注意的是,从ECMAScript 5 开始 ,JavaScript 中的String对象具有原生的.trim()方法。因此,理想情况下,任何对 trim 方法进行原型设计的尝试都应该检查它是否已经存在。

if(!String.prototype.trim){  
  String.prototype.trim = function(){  
    return this.replace(/^\s+|\s+$/g,'');  
  };  
}

本机添加: JavaScript 1.8.1 / ECMAScript 5

因此支持:

Firefox: 3.5+

Safari: 5+

Internet Explorer: IE9 + (仅在标准模式下!) http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more 的. aspx

Chrome: 5+

歌剧: 10.5+

ECMAScript 5 支持表: http//kangax.github.com/es5-compat-table/