^([1-9]|10)(;([1-9]|10)){0,3}$
1;10
4;3
2
1;2;3;4
10;5;1
无效示例:
10;2;35
1,2,3
7*5;4
;4
1;;2
46
8;10;8
2;1;2 (this one doesn't currently work)
关于只有当值是唯一的时,我如何匹配有什么建议吗?
添加使用反向引用的反向查找头,以增强唯一性:
^([1-9]|10)(?!.*\b\1\b)(;([1-9]|10)(?!.*\b\3\b)){0,3}$
需要单词边界\b
来防止1
与10
匹配。
请参见使用您的示例的现场演示。
我试图验证一个逗号分隔的数字列表1-31唯一(不重复)。 20、15、3 我尝试但是它接受重复的数字
是有效输入。 无效 有效 无效 无效(只有7个数字) 我尝试了,但它接受重复的数字
我试图验证数字1-8的逗号分隔列表。
作为前言,我意识到还有其他关于逗号分隔数字的正则表达式的主题,但当我试图使用这些解决方案时,它们都不起作用。
使用JavaScript,我只需要接受数字和逗号。 我使用的regex模式如下所示 还有一些类似的问题只是部分地处理了这一点: 带有逗号分隔符的数字的regex验证(只有整数,没有小数部分) 小数正则表达式,其中小数后面的数字是可选的(没有逗号分隔,小数部分限制为1位数) JavaScript函数需要允许数字、点和逗号(点、逗号和数字以任意顺序匹配)