字符串需要匹配除括号内的内容之外的所有内容
str = Aries (march--something)
我想剥去Aries(动态文本)和空格和括号。
我试过了:
/([^\(]*)?\(([^\)]*)?\)/
没用。
答案 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; });