8

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

  1. 小数点后不能超过2位
  2. 小数点是可选的
  3. 包括小数点在内的总长度不应超过 12 个字符
  4. 如果没有小数点,最大长度不应超过 9 个字符

谁能帮我吗?提前非常感谢。

4

5 回答 5

20

检查这个正则表达式。

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

这个正则表达式说

  • 标志是可选的
  • 至少一位和最多 9 位数字作为整数部分
  • 如果有小数点,则在其后至少一位且最多两位数。
于 2013-05-09T11:47:22.883 回答
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)
于 2013-05-09T11:39:34.253 回答
1

我自己的正则表达式:

var rgx = /^(-{1}?(?:([0-9]{0,10}))|([0-9]{1})?(?:([0-9]{0,9})))?(?:\.([0-9]{0,3}))?$/;
于 2015-07-16T22:36:47.130 回答
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;
        }
于 2019-02-21T10:56:59.437 回答
-1

在此处输入图像描述

/(?:^(?:(?:[1-9][0-9]{1,})|0)\.[0-9]{1,}$)|^[1-9]+[0-9]*$/
于 2019-05-06T07:19:27.133 回答