验证正确的数值

时间:2014-03-13 10:04:20

标签: javascript regex

正则表达式/^-?\d*(\.\d+)?$/对正整数和正整数以及十进制值进行了正确的验证。但我希望将正则表达式扩展一下以解决以下问题:

  1. 该值可以为0但不应为-0。只有在支持浮动值(如0.1)的情况下才应支持。
  2. 任何数字都不应以除整数0本身之外的前导零或以0.1开头的十进制值开始,例如。但是不应该有像00或00.01这样的值。
  3. 验证空值。
  4. 我们的想法是确保单个正则表达式完成验证而不是进行多次检查。

3 个答案:

答案 0 :(得分:1)

我认为这应该有效:

/^(0|-?(0.\d+|[1-9]\d*(\.?(\d+))?))$/

答案 1 :(得分:1)

受到ilmirons的严重影响答案:

^(0|-?(0\.\d+|[1-9]\d*(\.\d+)?))$

RegExr

答案 2 :(得分:0)

  function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
  }