我有以下正则表达式
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}
)
$