<分区>
我正在尝试创建一个正则表达式,将“5+.34+3”之类的字符串转换为“5+0.34+3”。基本上,我试图在所有没有前导零的小数前添加一个前导零。
一些例子
非常感谢您尝试解决这个问题!
(如果还有其他关于堆栈溢出的问题,请告诉我,以便我记下这个问题)
<分区>
我正在尝试创建一个正则表达式,将“5+.34+3”之类的字符串转换为“5+0.34+3”。基本上,我试图在所有没有前导零的小数前添加一个前导零。
(如果还有其他关于堆栈溢出的问题,请告诉我,以便我记下这个问题)
最佳答案
一个人想要替换任何没有数字字符前缀的小数点分隔符。因此,一个有效的方法是使用 replace
运行一个带有 negative lookbehind 的正则表达式哪个做 capture小数点分隔符。
正则表达式看起来像这样... /(?<!\d)(\.)/g
... 读起来是这样的 ...
/ ... /g
...通过...在全局范围内应用该模式/ ... (\.)/g
... 捕获预期的分隔符 .../ (?<!\d) ... /g
... 这不是 ( <!
) 前面加上一个数字 ( \d
) ...const sample = `
.34
1.45
66+.33+22+.32
5+.22 5+0.22 5+.22`;
const regXNonLeadingDigitDecimalSeparator = (/(?<!\d)(\.)/g);
console.log(
'original ...',
sample
);
console.log(
'sanitized ...',
sample.replace(regXNonLeadingDigitDecimalSeparator, '0$1')
);
console.log(
'some other separator sample ...\n',
'0,45; ,78; 0,78; 0.9; .9 =>',
'0,45; ,78; 0,78; 0.9; .9'.replace((/(?<!\d)(,)/g), '0$1')
)
.as-console-wrapper { min-height: 100%!important; top: 0; }
关于javascript - 正则表达式在所有未完成的小数前放置一个前导零 || .5 = 0.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66123414/