如何在javascript中用正则表达式替换字符串?

时间:2013-09-16 18:26:18

标签: javascript regex

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

str = Aries (march--something)

我想剥去Aries(动态文本)和空格和括号。

我试过了:

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

没用。

2 个答案:

答案 0 :(得分:0)

只要没有嵌套的括号可以起作用:

var str = 'Aries (march--something)';
var r = str.replace(/\([^)]*\)/g, '()');
//=> "Aries ()"

答案 1 :(得分:0)

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

解决这个javascript的标准方法是使用string对象的replace方法,该方法接受第二个参数即函数。使用匹配结果调用此函数,使您可以根据需要重新组合匹配的组。

以下是您案例的代码:

var str = "Aries (march--something)";
var result = str.replace(/([^\s]+)\s*(\()[^\)]*(\))/, function(match, g1, g2, g3) { return g1+g2+g3; });