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

标签 javascript regex validation

我有以下正则表达式

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/

相关文章:

javascript - 建立并返回一系列返回的 promise

javascript - 如何计算平均成绩

javascript - JQuery (Javascript) CSS 值和运算符

php - 正则表达式只允许小写字母

regex - 在 R 中使用 stringr 提取特定单词周围的单词样本

javascript - 对具有相同名称的输入进行步骤表单验证

python - 在 python 中本地进行 Itunes iap 收据验证。

javascript - JS与Python的RSA加解密(pycrypto)

C# 验证用户输入,如信用卡号

regex - sed 正则表达式替换与反向引用为什么不起作用?