JavaScript匹配(后跟数字

Prz*_*mek 1 javascript regex

在字符串中n+n(n+n),n代表任何数字或数字,我想匹配(并替换它*(,但前提是后跟一个数字或数字.

例子:

  • 我想2+22(2+2)改成2+22*(2+2),
  • 我想-1(3)改成-1*(3),
  • 4+(5/6) 应该保持原样.

这就是我所拥有的:

var str = '2+2(2+2)'.replace(/^[0-9]\(/g, '*(');
Run Code Online (Sandbox Code Playgroud)

但它不起作用.提前致谢.

Rob*_*b W 7

删除^,并将数字分组:

'2+2(2+2)'.replace(/([0-9])\(/g, '$1*(')
'2+2(2+2)'.replace(/(\d)\(/g, '$1*(')    //Another option: [0-9] = \d
Run Code Online (Sandbox Code Playgroud)

建议:2.通常是有效数字(= 2).以下RegExp删除数字和括号之间的点.

'2+2(2+2)'.replace(/(\d\).?\(/g, '$1*(') //2.(2+2) = 2*(2+2)
Run Code Online (Sandbox Code Playgroud)

括号创建一个组,可以使用引用$n,其中n是组的索引:$1.

您使用a启动了RegExp ^...,这意味着:匹配以字符串开头的部分内容....这种行为当然不是故意的.