-1

字符串需要匹配除括号内的内容之外的所有内容

str = Aries (march--something)

我想去掉白羊座(动态文本)和空格和括号。

我试过了 :

/([^\(]*)?\(([^\)]*)?\)/

没用。

4

2 回答 2

0

只要没有嵌套括号,以下就可以工作:

var str = 'Aries (march--something)';
var r = str.replace(/\([^)]*\)/g, '()');
//=> "Aries ()"
于 2013-09-16T18:59:57.717 回答
0

您正在尝试匹配排除内部子字符串的模式,但 javascript 的正则表达式实现并不真正支持反向引用,这就是使用更强大的语言完成的方式。

处理这个 javascript 的标准方法是使用字符串对象的 replace 方法,它接受第二个参数,它是一个函数。使用匹配结果调用此函数,使您能够根据需要重新组合匹配组。

这是您的案例的代码:

var str = "Aries (march--something)";
var result = str.replace(/([^\s]+)\s*(\()[^\)]*(\))/, function(match, g1, g2, g3) { return g1+g2+g3; });
于 2013-09-16T20:21:23.130 回答