为什么这不起作用?
var str = "nd2(31)jnd";
str = str.replace(/[0-9](/,/[0-9]*(/);
我想用前面的paranthese替换每个数字:“2(”with“2 *(”
答案 0 :(得分:2)
你的正则表达式错了,这就是你想要的:
str.replace(/([0-9]+)\(/g, "$1*(");
$1
引用了parens ()
中的第一个匹配项,您必须转义\(
以匹配它。
更新:为全局匹配添加g
2(3(4+5)) => 2*(3*(4+5))
更新:让它在parens的另一端工作,合并:
str.replace(/(\d+)\(/g, "$1*(").replace(/\)(\d+)/g, ")*$1");