我正在尝试以公式替换所有浮动数字,这些浮数错过了前面的零。例如:
" 4 .5"应该变成:" 4 0.5"
现在,我阅读了JavaScript中不支持背后的外观,那么我该如何实现呢?以下代码还替换为数字之前:
var regex = /(.d*)/,
formula1 = '4+1.5',
formula2 = '4+.5';
console.log(formula1.replace(regex, '0$1')); //4+10.5
console.log(formula2.replace(regex, '0$1')); //4+0.5
尝试此正则表达式(D)(.d*)
var regex = /(D)(.d*)/,
formula1 = '4+1.5',
formula2 = '4+.5';
console.log(formula1.replace(regex, '$10$2'));
console.log(formula2.replace(regex, '$10$2'));
您可以使用
s = s.replace(/B.d/g, '0$&')
请参阅正则演示。
详细信息
-
B.
-匹配字符串开始时的.
,或者不带一个字char之前(字母,digit或_
) -
d
-数字。
0$&
替换字符串正在整个比赛的前面添加0
($&
)。
JS演示:
var s = "4+1.5n4+.5";
console.log(s.replace(/B.d/g, '0$&'));
另一个想法是使用匹配字符串开始或非数量字符的交替组,捕获它,然后使用反向注册:
var s = ".4+1.5n4+.5";
console.log(s.replace(/(^|D)(.d)/g, '$10$2'));
模式将匹配
-
(^|D)
-第1组(从替换模式中提及$1
):String(^
)的开始或任何非数字CHAR -
(.d)
-第2组(从替换模式提到$2
):A.
,然后是Digit