繁体   English   中英

Javascript正则表达式删除空格

[英]Javascript Regular Expression Remove Spaces

所以我正在为 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" (未知转义))。

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

删除字符串中的所有空格

// Remove only spaces
`
Text with spaces 1 1     1     1 
and some
breaklines

`.replace(/ /g,'');
"
Textwithspaces1111
andsome
breaklines

"

// Remove spaces and breaklines
`
Text with spaces 1 1     1     1
and some
breaklines

`.replace(/\s/g,'');
"Textwithspaces1111andsomebreaklines"

在生产和跨线工作

这在几个应用程序中用于清理用户生成的内容,删除额外的空格/返回等,但保留了空格的含义。

text.replace(/[\n\r\s\t]+/g, ' ')
str.replace(/\s/g,'')

为我工作。

jQuery.trim对 IE 有以下 hack,虽然我不确定它会影响哪些版本:

// 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.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM