内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
所以我正在为JQuery编写一个小插件来删除字符串中的空格。看这里
(function($) {
$.stripSpaces = function(str) {
var reg = new RegExp("[ ]+","g");
return str.replace(reg,"");
}
})(jQuery);
我的正则表达式目前[ ]+
是收集所有空间。这工作..但是它不留下我口中的好口味..我也尝试过[\s]+
,[\W]+
但都没有工作..
必须有一种更好(更简洁)的搜索空间的方法。
我建议你使用文字符号,并使用\s
字符类:
//..
return str.replace(/\s/g, '');
//..
使用字符类\s
和正好有区别' '
,这将匹配更多的空白字符,例如'\t\r\n'
等等,查找' '
将只替换ASCII 32空格。
在RegExp
当你想构造是有用的建立一个动态的模式,在这种情况下,你不需要它。
此外,正如你所说的,"[\s]+"
没有与RegExp
构造函数一起工作,那是因为你传递了一个字符串,并且你应该“反转”反斜杠,否则它们将被解释为字符串内的字符转义(例如:"\s" === "s"
(unknown逃逸))。