![](/img/trans.png)
[英]JavaScript Regex: Match "-" only if a digit is followed by "-", but not match when there is only single "-"
[英]JavaScript match ( followed by a digit
在字符串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, '*(');
但这是行不通的。 提前致谢。
删除^
,然后将数字分组:
'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*(');
这跟您所写的一样(括号内必须跟数字)。
因此4(
将更改为4*(
例如对于4(-1/2)
可能很重要
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.