具有可选小数点的十进制数的正则表达式

时间:2016-09-08 09:46:34

标签: javascript regex

我的要求是测试粘贴的数据,如果失败,则不要粘贴。

Regex: /\d{0,4}([\.|\,]\d{0,2})?/

使用的数据:

1.2 tests true
1.2.3 test true as well

要求是

min 0小数点前最多4位数
小数点可以是点或逗号
最小值1小数点后最多3位数如果存在小数点。

我试过以下但不行。
任何帮助将不胜感激。

fiddle

1 个答案:

答案 0 :(得分:5)

根据您的要求

/^\d{0,4}(?:[.,]\d{1,3})?$/
  1. ^:行的开头
  2. \d{0,4}:零到四位
  3. [.,]:匹配点或逗号
  4. \d{1,3}:一到三位数字
  5. (?: ... ):非捕获组
  6. (something)?该组可以出现零或一次
  7. $:行尾
  8. input:valid {
      color: green;
      font-weight: bold
    }
    input:invalid {
      color: red;
    }
    <input type="text" pattern="\d{0,4}(?:[.,]\d{1,3})?" />