正则表达式删除'['和']'之间的空格

时间:2013-05-20 06:56:38

标签: javascript regex expression

我现在已经打破了这个问题。 在javascript中我有一个字符串表达式,我需要删除'['和']'之间的空格。

例如,表达式可以是: -

"[first name] + [ last name ] + calculateAge()"

我希望它成为: -

"[firstname] + [lastname] + calculateAge()"

我尝试使用以下stackoverflow question中的方括号,但没有达到目的。如何在该问题中制作正则表达式,也适用于方括号?

有人可以帮忙吗?

谢谢, AJ

3 个答案:

答案 0 :(得分:8)

如果括号总是正确平衡,并且它们从不嵌套,那么你可以这样做:

result = subject.replace(/\s+(?=[^[\]]*\])/g, "");

当且仅当字符串前面有]字符且没有插入[]字符时,才会替换空白字符。

<强>解释

\s+       # Match whitespace characters
(?=       # if it's possible to match the following here:
 [^[\]]*  # Any number of characters except [ or ]
 \]       # followed by a ].
)         # End of lookahead assertion.

答案 1 :(得分:1)

尝试

"[first name] + [ last name ] + calculateAge()".replace(/\[.*?\]/g, function(string) {
    return string.replace(/\s/g, '');
})

演示:Fiddle

答案 2 :(得分:-5)

您可以使用此

"[first name] + [ last name ] + calculateAge()".gsub(/\s+/, "")

这适用于ruby