6

一段时间以来,我一直在为此烦恼。在 javascript 中,我有一个字符串表达式,我需要删除 '[' 和 ']' 之间的空格。

例如,表达式可以是:-

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

我希望它变成:-

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

我从以下stackoverflow 问题中尝试了一些关于方括号的内容,但并没有完全实现。如何使该问题中的正则表达式也适用于方括号?

任何人都可以帮忙吗?

谢谢, AJ

4

3 回答 3

16

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

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.
于 2013-05-20T07:29:18.577 回答
3

尝试

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

演示:小提琴

于 2013-05-20T07:02:42.613 回答
-5

你可以用这个

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

这适用于红宝石

于 2013-05-20T07:23:23.980 回答