问题很简单,我们需要将逗号放在正确的位置,以帮助用户以正确的方式格式化数字。
例如,如果用户输入:
123123123.534343
结果应为:
123,123,123.534343
我们现在所拥有的是:(当没有'。'时失败)
str.toString()。replace(/ \ B(?=(\ d {3})+(?!\ d)。)/ g,',');
并且:(失败,因为它在'。'之后的小数部分添加了逗号)
str.toString()。replace(/ \ B(?=(\ d {3})+(?!\ d))/ g,',');
有什么想法吗?
答案 0 :(得分:3)
最好使用Intl.NumberFormat格式化数字,因为它取决于语言
console.log(new Intl.NumberFormat('en-US').format(123123123.534343));
答案 1 :(得分:0)
小数点前4位数字的正则表达式示例:
echo 1234.556 | sed 's/\([0-9]\)\([0-9]\)\([0-9]\)\([0-9]\)\(\.[0-9]*\)/\1,\2\3\4\5/'
您需要相应地更新它以换取其他位数(但请注意,对于sed,匹配的模式限制为9,至少用于sed,因此最多可在小数点前8位)