Javascript正则表达式:负查找
我试图在一个公式中替换掉所有没有前面零的浮点数。例如: “4+0.5”应改为“4+0.5” 现在我读到JavaScript不支持look behinds,那么我该如何实现这一点呢?当前面有数字时,以下代码也将替换: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试试这个正则表达
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
。