JavaScript匹配(后面跟一个数字

JavaScript match ( followed by a digit

本文关键字:一个 数字 匹配 JavaScript      更新时间:2023-09-26

在字符串n+n(n+n)中,其中n代表任何数字或数字,我希望匹配(并用*(替换它,但前提是它后面跟着一个数字或数字。

示例:

  • 我想把CCD_ 5改成CCD_
  • 我想把CCD_ 7改成CCD_
  • 4+(5/6)应该保持原样

这就是我所拥有的:

var str = '2+2(2+2)'.replace(/^[0-9]'(/g, '*(');

但它不起作用。提前谢谢。

移除^,并对数字进行分组:

'2+2(2+2)'.replace(/([0-9])'(/g, '$1*(')
'2+2(2+2)'.replace(/('d)'(/g, '$1*(')    //Another option: [0-9] = 'd

建议2.通常是一个有效的数字(=2(。下面的RegExp删除数字和圆括号之间的一个点。

'2+2(2+2)'.replace(/('d').?'(/g, '$1*(') //2.(2+2) = 2*(2+2)

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

您用^...开始RegExp,这意味着:匹配以...开始的字符串的一部分。这种行为当然不是故意的。

var str = '2+2(2+2)+3(1+2)+2(-1/2)'.replace(/([0-9])'(/g, '$1*(');

http://jsfiddle.net/ZXU4Y/3/

这跟在你写的后面(括号必须跟在数字后面(。

因此4(将更改为4*(,这可能很重要,例如4(-1/2)

您可以使用捕获组和反向引用来完成此操作。

查看此页,在"替换文本语法"下了解更多详细信息。

这是一把能满足你要求的小提琴。

希望这能有所帮助。