正则表达式十进制数,可选小数点

Nik*_*pta -2 javascript regex

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

Regex: /\d{0,4}([\.|\,]\d{0,2})?/
Run Code Online (Sandbox Code Playgroud)

使用的数据:

1.2 tests true
1.2.3 test true as well
Run Code Online (Sandbox Code Playgroud)

要求是

小数点前的最小0到最大4位小数点
可以是点或逗号
。如果存在小数点,则小数点后的最小1到3位最大数。

我尝试了以下操作,但不起作用。
任何帮助将不胜感激。

小提琴

Tus*_*har 6

根据您的要求

/^\d{0,4}(?:[.,]\d{1,3})?$/
Run Code Online (Sandbox Code Playgroud)
  1. ^:生产线的起点
  2. \d{0,4}:零到四位数
  3. [.,]:匹配点或逗号
  4. \d{1,3}:1-3位数字
  5. (?: ... ):非捕获组
  6. (something)? 该组可以出现零次或一次
  7. $: 行结束

/^\d{0,4}(?:[.,]\d{1,3})?$/
Run Code Online (Sandbox Code Playgroud)
input:valid {
  color: green;
  font-weight: bold
}
input:invalid {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)