我正在尝试格式化一个数字,并希望使用正则表达式去除小数点后超过2位的任何字符。
在示例中,它将阻止134.000成为可能。相反,它将是134.00。
我已经尝试了但是我正在努力解决这个问题,我的第一个正则表达式正在运行,这确保它只是数字和小数。以下正则表达式是我遇到的麻烦。这就是我所拥有的......
// strip non numbers/decimal
const stripNonNumDec = value.replace(/[^0-9/.]/g, '');
// strip all characters that exceed 2 digits after the decimal
const stripAfterDecimal = stripNonNumDec.replace(/^[^0-9]{2}..*/g, '');
答案 0 :(得分:2)
这里绝对没有理由使用正则表达式。只需使用parseFloat
转换为数字,然后使用.toFixed
将其设置为小数点后的固定位数。
const numberString = "123.000000";
const number = parseFloat(numberString);
const formattedNumber = number.toFixed(2);
console.log(formattedNumber);
请注意,这将基于第(N + 1)位数对第N位数进行舍入,因此123.456
将变为123.46
而不是123.45
。
答案 1 :(得分:1)
您可以在JavaScript中使用toFixed方法
实施例
var num = 134.000;
var n = num.toFixed(2); // n = 134.00