使用RegEx验证负十进制数和正十进制数

时间:2013-05-09 11:32:12

标签: javascript regex

我正在尝试构建一个正则表达式,它允许使用以下规则的负十进制数和正十进制数。

  1. 小数点后不能超过2位数
  2. 小数点是可选的
  3. 包括小数点在内的总长度不应超过12个字符
  4. 如果没有小数点,则最大长度不应超过9个字符
  5. 任何人都可以帮助我吗?非常感谢。

5 个答案:

答案 0 :(得分:14)

检查此正则表达式。

^[+-]?[0-9]{1,9}(?:\.[0-9]{1,2})?$

这个正则表达式说

  • sign是可选的
  • 至少一个和最多9位数作为整数部分
  • 如果有小数点,则至少有一位和最多两位数。

答案 1 :(得分:3)

这非常简单,因为12 - 9 == 3表示两位小数+点。

var re = new RegExp('^-?\\d{1,9}(\\.\\d{1,2})?$');

授权各

  • -123456789
  • -123456789.1
  • -123456789.12
  • 0
  • 0.12

但不接受

  • 01234567890123超过12分钟
  • 123.一个没有小数的点
  • 123.123超过两位小数
  • ..12(缺少0)

答案 2 :(得分:1)

我自己的正则表达式:

var rgx = /^(-{1}?(?:([0-9]{0,10}))|([0-9]{1})?(?:([0-9]{0,9})))?(?:\.([0-9]{0,3}))?$/;

答案 3 :(得分:0)

var NumberToValidate = 48428;
        var valid =  /^([0-9]*[1-9][0-9]*)$/.test(NumberToValidate);
        {
        if (!valid)
    alert("Invalid Quantity!!\nThe Quantity cannot be Zero\n or a part of a Unit !");
            return false;
        }

答案 4 :(得分:-1)

enter image description here

/(?:^(?:(?:[1-9][0-9]{1,})|0)\.[0-9]{1,}$)|^[1-9]+[0-9]*$/