javascript中的正则表达式只允许数字,逗号和单个小数点

Pra*_*gar 6 javascript regex

目前我正在使用此正则表达式来匹配具有单个小数点的正数

/^\d+(\.\d+)?$/
Run Code Online (Sandbox Code Playgroud)

但这不允许使用逗号.如何修改它以允许小数点前的零或更多逗号?

示例:

  • 11,111.00(应该被允许)我可以使用小数点前有任意数字逗号的数字.

编辑:

有效值

  • 111
  • 11,111
  • 11,111.0
  • 111111

可以使用或不使用逗号输入值.该字段的数据类型是SQL MONEY,因此它将处理逗号.

Wik*_*żew 4

需要

/^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d+)?$/
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

细节

  • ^- 字符串的开头
  • (?:\d{1,3}(?:,\d{3})*|\d+)- 任一:
    • \d{1,3}(?:,\d{3})*- 1 到 3 位数字后跟 0+ 的 a 序列,和 3 位数字序列
    • | - 或者
    • \d+- 1 位或多位数字
  • (?:\.\d+)?- 可选序列.- 可选的1+ 数字
  • $- 字符串末尾。

/^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d+)?$/
Run Code Online (Sandbox Code Playgroud)