![](/img/trans.png)
[英]Regex for 8 digits and after that 1 dot and after that only 2 digits
[英]ignore digits after '.' regex
我目前有这个 function 用于格式化数字(每 3 位添加逗号):
formatNumber: (num) => {
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
},
问题是,如果数字的小数位超过 3 位,它还会在小数点后添加逗号。 我想忽略之后的所有内容.
,但仍返回包含小数的数字。 (忽略小数点后的任何内容,但仍然返回。)
例如,如果我有1000000.12341234
我希望它返回1,000,000.12341234
(当前 function 将返回1,000,000.12,341,234
)
如果字符串只包含一个点,您可以在匹配数字后使用正向预测(?=\d*\.\d)
断言右边应该有一个点,后面是一个数字。
请注意,您可以替换为完全匹配的$&
而不是使用组。
\d(?=\d*\.\d)(?=(?:\d{3})+(?!\d))
const s = "1000000.12341234"; const regex = /\d(?=\d*\.\d)(?=(?:\d{3})+(?;\d))/g. console.log(s,replace(regex, "$&,"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.