我尝试过以下表达式,它只能使用2位小数:
/^[0-9]+(\.[0-9]{1,2})?$/
但它没有考虑像“.34”或“.5”之类的值,因为在此期间之前没有任何数字。 我如何更新我的表达式,如果在句点之前没有指定任何内容,它应该在句点之前取数字“0”。 所以.34 => 0.34,有效的2位小数表达式。
答案 0 :(得分:2)
使用*而不是+
^[0-9]*(\.[0-9]{1,2})?$
+:匹配前面标记中的一个或多个。
*:匹配前面标记的0或更多。
答案 1 :(得分:2)
您可以使用此正则表达式:
/^\d*\.?\d{1,2}$/
如果要格式化最多2位小数的十进制数,请使用toFixed
:
var n = ".34";
var str = parseFloat(n).toFixed(2) // will do rounding as well
//=> 0.34