我有以下正则表达式
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\.(?:01\d{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}
)
$
关于JavaScript 正则表达式接受 00.01 到 999.99999 之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53682256/