是否有一个JavaScript正则表达式来删除除换行符之外的所有空格?

时间:2010-10-06 11:08:11

标签: javascript regex

如何删除字符串中的空格而不是JavaScript中的换行符。我使用\t 找到了C#的解决方案,但JavaScript不支持它。

为了更清楚,这是一个例子:

var s = "this\n is a\n te st"

使用regexp方法我希望它返回

"this\nisa\ntest"

9 个答案:

答案 0 :(得分:10)

虽然在Javascript / /g中匹配\t,但我发现它可以隐藏原始意图,因为它读取为空格字符的匹配项。另一种方法是使用明确列出空白字符的字符集,不包括\n。即/[ \t\r]+/g

var newString = s.replace(/[ \t\r]+/g,"");

答案 1 :(得分:8)

即使在\t上也可以。

var newstr = s.replace(/ +?/g, '');

答案 2 :(得分:6)

如果你想匹配\s匹配除换行符之外的每个空白字符,你可以使用它:

/[\t\v\f\r \u00a0\u2000-\u200b\u2028-\u2029\u3000]+/g

请注意,这将删除回车符(\r),因此如果输入包含\r\n对,则它们将转换为\n。如果要保留回车符,只需从正则表达式中删除\r

答案 3 :(得分:3)

[^\S\r\n]+

不是 -whitespace字符,不是\r而不是\n;一个或多个实例。

答案 4 :(得分:2)

试试这个

var trimmedString = orgString.replace(/^\s+|\s+$/g, '') ;

答案 5 :(得分:0)

这就是诀窍:

str.replace(/ /g, "")

且空格与标签或换行符(CHROME45)不匹配,全局替换时不需要加号或问号。

在Perl中你有"水平空格"简写\ h在换行符和空格之间去做,但遗憾的是不在JavaScript中。

另一方面,\ t的简写是在JavaScript中支持的,但它仅描述了制表符。

答案 6 :(得分:0)

const str = "abc def ghi"; 

str.replace(/\s/g, "")

-> "abcdefghi"

答案 7 :(得分:0)

df title genre_name genre_ids 0 a1 ['family', 'animation'] [1,2] 1 a2 ['action', 'family', 'comedy'] [3,1,4] 2 a3 ['family', 'comedy'] [1,4] 3 a4 ['horror','action] [5,3] 4 a5 ['family', 'animation','comedy'] [1,2,4]

为我工作的文字如下:

code.replace(/^\s[^\S]*/gm, '')

并删除前3行之前的空格/制表符,并删除该行中的空格。

enter image description here

* @ Toto的优化: #set($todayString = $util.time.nowEpochMilliSeconds()) #set($pk = $util.autoId()) $util.qr($ctx.stash.put("postId", $pk))

答案 8 :(得分:-1)

试试这个'/^\\s*/'