我正在尝试使用常规exp验证数字字段整数和十进制。除一位数字外,在所有情况下均能正常工作:
$(document).ready(function(){
$("#quantity").on('blur',function(){
var quantity = $('#quantity').val()
var pattern = /^-?\d+\.?([0-9]{1,2})$/;
alert(pattern.test(quantity))
})
})
输出:
1 ---> false (why?)
-
9 ---> false (why?)
5.87 -->true (fine)
12.35 ---> true (fine)
12.344 --->false (fine)
2323.34 --->true (fine)
1至9其警报
True
,但我需要它为false
最佳答案
字符串中同时包含\d+
和[0-9]{1,2}
,这意味着字符串中必须至少包含2位数字(中间有一个可选的小数)。
如果希望整个小数部分是可选的,只需将其用括号括起来并添加?
量词即可:
/^-?\d+(\.[0-9]{1,2})?$/