用于输入数字和逗号的正则表达式
Regex for input with numbers and commas
我正在尝试限制输入数据。
我的目标:
- 每个输入只允许两个符号:数字和逗号
- 第一个符号只有数字(零个或多个)
- 号码数量没有限制(零个或更多)
- 允许悬空逗号,但只能有一个
测试用例:
- 1,2,4 - ок
- 1221,212,4121212 - ок
- ,2,3 - 不是 ок
- 1,2,3, - ок
- 11,21111,31111, - ок
我遇到过这样的事情,但它不能正常工作
/^\d*(,\d*)*$/.test(value)
感谢任何帮助!
你可以使用
/^(?:\d+(?:,\d+)*,?)?$/
参见regex demo。 详情:
^
- 字符串开头
(?:\d+(?:,\d+)*,?)?
- 一个可选的非捕获组:
\d+
- 一位或多位数字
(?:,\d+)*
- 零个或多个逗号序列和一个或多个数字
,?
- 一个可选的逗号
$
- 字符串结尾。
我正在尝试限制输入数据。
我的目标:
- 每个输入只允许两个符号:数字和逗号
- 第一个符号只有数字(零个或多个)
- 号码数量没有限制(零个或更多)
- 允许悬空逗号,但只能有一个
测试用例:
- 1,2,4 - ок
- 1221,212,4121212 - ок
- ,2,3 - 不是 ок
- 1,2,3, - ок
- 11,21111,31111, - ок
我遇到过这样的事情,但它不能正常工作
/^\d*(,\d*)*$/.test(value)
感谢任何帮助!
你可以使用
/^(?:\d+(?:,\d+)*,?)?$/
参见regex demo。 详情:
^
- 字符串开头(?:\d+(?:,\d+)*,?)?
- 一个可选的非捕获组:\d+
- 一位或多位数字(?:,\d+)*
- 零个或多个逗号序列和一个或多个数字,?
- 一个可选的逗号
$
- 字符串结尾。