我正在尝试编写一个 JavaScript 正则表达式以仅允许以下输入:
- 数字
- 中间有逗号的数字
- 中间有连字符的数字,但后面只能跟另一个数字或逗号,后面跟一个数字。这种模式可以再次重复。
到目前为止,我有以下表达式:
^[0-9]$|^[0-9]+$|^[0-9](-?,?[0-9])*$
但是,这是允许1-1-1
的,这是我不想要的。连字符只有在后面没有另一个数字-连字符-数字组合时才会出现。
此链接可能有帮助:http ://regexr.com?34ljt
以下样本应评估为有效:
01,03,05-08,10
01,03,05
01,03,05-08
01
1,1,5-6,1,1
1,1,5-6,1,1-3
12,12, 1-9
1-9,5,5
1-9,9,9,5-6
1-2
11-11
11,11
1,1
1,1,1
11,11,11
1111
1,1,1, 1,1,1
1
56,1
1,1
1,3
1,3,4,5
1,3
以下样本应评估为无效:
sdfdf 11-11-11-11
1-1-1-1-1
f
01
,
01,03,05-08, -1,4
-,-5,8909
1,1,1-1-1
1,1 ,11-1111-1
1-1-1
1,,1
1--1
1-
1,,
,-1-
df
-1
,1