Javascript正则expression式删除空格

所以我正在写一个JQuery的小插件来删除string中的空格。 看这里

(function($) { $.stripSpaces = function(str) { var reg = new RegExp("[ ]+","g"); return str.replace(reg,""); } })(jQuery); 

我的正则expression式当前是[ ]+收集所有空间。 这工作..但是,它不留下一个好口味我也试过[\s]+[\W]+但都没有工作..

必须有一个更好(更简洁)的方式来search只有空格。

我build议你使用文字符号,并使用\s字符类:

 //.. return str.replace(/\s/g, ''); //.. 

使用字符类\s ' ' \s' '是有区别' ' ,这将匹配很多更多的空格字符,例如'\t\r\n'等等,寻找' '将只replaceASCII 32个空格。

RegExp构造函数在构builddynamic模式时非常有用,在这种情况下,您并不需要它。

此外,正如你所说, "[\s]+"没有与RegExp构造函数一起工作,那是因为你正在传递一个string,而且你应该“反转”反斜杠,否则它们将被解释为字符转义在string内(例如: "\s" === "s" (未知的转义))。

 "foo is bar".replace(/ /g, '') 
 str.replace(/\s/g,'') 

为我工作。

jQuery.trim具有以下黑客入侵的IE浏览器,虽然我不知道它影响到什么版本:

 // Check if a string has a non-whitespace character in it rnotwhite = /\S/ // IE doesn't match non-breaking spaces with \s if ( rnotwhite.test( "\xA0" ) ) { trimLeft = /^[\s\xA0]+/; trimRight = /[\s\xA0]+$/; } 

这同样适用: http : //jsfiddle.net/maniator/ge59E/3/

 var reg = new RegExp(" ","g"); //<< just look for a space.