![](/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.