Javascript Regex删除';[';和';]';

Javascript Regex删除';[';和';]';,javascript,regex,expression,Javascript,Regex,Expression,一段时间以来,我一直在为这件事伤脑筋。 在javascript中,我有一个字符串表达式,需要在其中删除“[”和“]”之间的空格 例如,表达式可以是:- "[first name] + [ last name ] + calculateAge()" 我希望它成为:- "[firstname] + [lastname] + calculateAge()" 我尝试了以下方括号中的内容,但没有完全达到目的。我如何使这个问题中的正则表达式也适用于方括号 有人能帮忙吗 谢谢, AJ试试看 "[first

一段时间以来,我一直在为这件事伤脑筋。 在javascript中,我有一个字符串表达式,需要在其中删除“[”和“]”之间的空格

例如,表达式可以是:-

"[first name] + [ last name ] + calculateAge()"
我希望它成为:-

"[firstname] + [lastname] + calculateAge()"
我尝试了以下方括号中的内容,但没有完全达到目的。我如何使这个问题中的正则表达式也适用于方括号

有人能帮忙吗

谢谢, AJ

试试看

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

您可以使用此

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

这在ruby中有效,如果括号总是正确平衡的,并且从不嵌套,那么您可以这样做:

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.

我认为你不可能一步到位。您必须提取括号中的内容,删除其中的空格,然后将其替换回括号中。括号可以嵌套吗?如果是这样,就不能用JavaScript正则表达式来实现。如果没有,则没有问题(如果括号始终正确平衡)。它现在不会嵌套。看起来很简单,谢谢你,阿伦。你能解释一下上面的表达式吗?你测试过了吗?问题是关于JavaScript,而不是Ruby,在Ruby中,结果是
[firstname]+[lastname]+calculateAge()