正则表达式用''替换小数点后2位数的所有字符

时间:2016-09-28 15:57:57

标签: javascript regex ecmascript-6

我正在尝试格式化一个数字,并希望使用正则表达式去除小数点后超过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, '');

2 个答案:

答案 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