创建了一个演示版DEMO,它正如我所期望的那样工作,但我无法在24.99
之后添加任何更多值,但我需要的价值可以高达99.99
< / p>
尝试修改演示regex
,但它没有按预期工作。
这是Regex
^(0+)?(24(\.00?)?|(\.00?)?|\.[0-9]+|0?[0-9](\.[0-9]{0,2})?|(0+)?[0-2][0-3](\.[0-9][0-9]?)?)$
有人可以帮我这个吗?
答案 0 :(得分:2)
^(0+)?(99(\.99?)?|(\.99?)?|\.[0-9]+|0?[0-9](\.[0-9]{0,2})?|(0+)?[0-9][0-9](\.[0-9][0-9]?)?)$
试试这个。看看演示。
答案 1 :(得分:1)
这会将0.00
- 99.99
与任意数量的小数位相匹配,加上.43
和43.
等边缘情况:
^0*((((9[0-8]?)|([0-8][0-9]?))?(\.[0-9]*)?)|(99(\.(([0-8][0-9]*)|(9(90*|([0-8][0-9]*))))?)?))$
请注意,它也会匹配一个空字符串,因此您应首先检查它。
虽然根据您对vks答案的评论,将值转换为浮点值然后检查它是否为范围更快更安全:
function isValidInput(value) {
var val = parseFloat(value);
return !isNaN(val) && val >= 0 && val <= 99.99;
}