我有以下regex
var pattern = /^(d{2,3})?(?:.d{2,5})?$/;
//The value must be always lesser than 999.99999
if(!pattern.test(billRate.value)|| parseFloat(billRate.value) > parseFloat("999.99999"))
{
alert("Invalid It accepts values between 00.01 to 999.99999");
return false;
}
最小值应始终为00.01,最大值为999.99999。
此外,正则表达式应始终检查小数点前至少有两个数字,小数点后至少有两位小数。
不幸的是,上面的正则表达式无法正常工作。
你可以试试这个
^(?:0?00.(?:01d{0,3}|0[2-9]d{0,3}|[1-9]d{1,4})|(?:0?0[1-9]|0?[1-9]d|[1-9]d{2}).d{2,5})$
不幸的是,我没有办法测试它
可读版本
^
(?:
0? 00 . # 000.01000 - 000.99999
(?:
01 d{0,3}
| 0 [2-9] d{0,3}
| [1-9] d{1,4}
)
|
(?: # 001.00000 - 999.99999
0? 0 [1-9]
| 0? [1-9] d
| [1-9] d{2}
)
.
d{2,5}
)
$