Javascript Regex: negative lookbehind



我正在尝试以公式替换所有浮动数字,这些浮数错过了前面的零。例如:

" 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

最新更新