0

我正在尝试使用常规 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

4

1 回答 1

4

您在字符串中同时拥有\d+[0-9]{1,2},这意味着字符串中必须至少有 2 位数字(中间有一个可选的小数)。

如果您希望整个小数部分是可选的,只需用括号括起来并添加一个?量词:

/^-?\d+(\.[0-9]{1,2})?$/
于 2013-07-24T15:27:52.873 回答