Regexp,替换某些组合

时间:2016-01-30 19:29:29

标签: javascript regex

得到这个字符串:"'ab',('AA', 'BB'), r('rr')"

我希望输出为"'ab',['AA', 'BB'], r('rr')"

试过这个

var replace = function(str){
    return str.replace(/\)/g, ']')
  .replace(/\(/g, '[')
}

它取代了所有paranthes但是如何组合regexp以便它只用,(替换[

https://jsfiddle.net/tyapco67/

3 个答案:

答案 0 :(得分:0)

只需在括号前添加逗号:

return str.replace(/(,\s*)\((.*?)\)/g, '$1[$2]');

答案 1 :(得分:0)

没有RegEx

"'ab',('AA', 'BB'), r('rr')".split(",(").join(",[").split("),").join("],")

答案 2 :(得分:0)

我喜欢亲自使用[^]*反向选择器。因此它不需要逗号。

var replace = function(str){
    return str.replace(/\(([^)]*)\)/g, "[$1]");
}

目前接受的答案会产生'ab',['AA', 'BB'], r('rr')