在字符串中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)
但它不起作用.提前致谢.
删除^,并将数字分组:
'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 ^...,这意味着:匹配以字符串开头的部分内容....这种行为当然不是故意的.