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.