JavaScript,RegEx - 如何获取实际找到的字符串

时间:2013-03-16 09:33:54

标签: javascript regex math

为什么这不起作用?

var str = "nd2(31)jnd";
str = str.replace(/[0-9](/,/[0-9]*(/);

我想用前面的paranthese替换每个数字:“2(”with“2 *(”

1 个答案:

答案 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");