Javascript正则表达式:负查找

Javascript正则表达式:负查找,javascript,regex,Javascript,Regex,我试图在一个公式中替换掉所有没有前面零的浮点数。例如: “4+0.5”应改为“4+0.5” 现在我读到JavaScript不支持look behinds,那么我该如何实现这一点呢?当前面有数字时,以下代码也将替换: var regex=/(\。\d*)/, 公式1='4+1.5', 公式2='4+.5'; log(公式1.replace(regex,'0$1'))//4+10.5 console.log(formula2.replace(regex,'0$1'))//4+0.5试试这个正则表达

我试图在一个公式中替换掉所有没有前面零的浮点数。例如:

“4+0.5”应改为“4+0.5”

现在我读到JavaScript不支持look behinds,那么我该如何实现这一点呢?当前面有数字时,以下代码也将替换:

var regex=/(\。\d*)/,
公式1='4+1.5',
公式2='4+.5';
log(公式1.replace(regex,'0$1'))//4+10.5
console.log(formula2.replace(regex,'0$1'))//4+0.5
试试这个正则表达式
(\D)(\。\D*)

var regex=/(\D)(\。\D*)/,
公式1='4+1.5',
公式2='4+.5';
console.log(公式1.replace(regex,$10$2'));
console.log(formula2.replace(regex,$10$2'))您可以使用

s = s.replace(/\B\.\d/g, '0$&')

详细信息

  • \B\.
    -匹配字符串开头的
    ,或者前面没有字符(字母、数字或
  • \d
    -一个数字
0$&
替换字符串正在整个匹配项的正前方添加一个
0
$&

JS演示:

var s=“4+1.5\n4+.5”;

console.log(s.replace(/\B\.\d/g,'0$&')尝试
。替换(/\B\.\d/g,'0$&')
谢谢,第二个解决方案工作正常!版本1不起作用,因为点前面可能有函数的字母(例如“ln.05”)@Beppe很高兴它能为您工作。请注意,如果没有
^
备选方案,字符串开头的
.5
数字将不会更改为
0.5