JavaScript正则表达式接受00.01到999.99999之间的值



我有以下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} 
)
$

相关内容

  • 没有找到相关文章

最新更新