如何使用Javascript RegExp来转义括号?

时间:2016-09-18 15:09:07

标签: javascript regex

我尝试使用以下RegExp来转义括号和内部的东西。 以下是示例字符串:

hjdsoghbesi (saeogbesor) serogberso ersberawsewf(edsrgb) sfdrobersb ouersber

我希望结果代码是

hjdsoghbesi serogberso ersberawsewf sfdrobersb ouersber

我尝试使用以下内容:

myString.replace(/\(.*\)/g,"")

然而,这集中在第一个开放式支架和最后一个关闭支架上并给了我:

hjdsoghbesi sfdrobersb ouersber

我怎样才能达到我想要的效果?

如果您打算回答,请告诉我为什么您的RegExp可以达到我的目的,因为我不熟悉RegExp。

2 个答案:

答案 0 :(得分:1)

使用非贪婪量词:

var str = "hjdsoghbesi (saeogbesor) serogberso ersberawsewf(edsrgb) sfdrobersb ouersber";
console.log(str.replace(/\(.*?\)/g, ""));

*贪婪,它会匹配尽可能多的字符。

*?是懒惰的,它会尽可能少地匹配。

答案 1 :(得分:0)

除了Oriol的回答,我还看到了以下可能性。使用[^\)]代替.myString.replace(/\([^\)]*\)/g,"")[^\)]匹配除)以外的所有字符。 []列出了匹配的字符,此时^会将它们反转,以便除了列出的字符之外的所有字符都匹配。