我需要验证一个7位数的数字,中间必须有一个破折号。
如果我在下面使用,我就能得到。
^(\d-?\d-?\d-?\d-?\d-?\d-?\d)$
有没有办法缩短它?
我尝试了^(\d+(-?){7})$
,但是它不起作用。
Valid 123-09-23
Valid 12-3092-3
Valid 1-230-9-23
Valid 1234567
Invalid -1237883
Invalid 12345678
InValid 123-45-678
PS:我将在我的Javascript应用程序中实现它。
答案 0 :(得分:3)
仅重复组(7次,所以您总共得到7位数字),也不要重复\d
(否则您可能会匹配比期望更多的数字):
^(?:\d-?){7}$
https://regex101.com/r/yLQHWW/1
(您的原始模式等效于:“匹配一位或多位数字,并可选地跟随最多7个-
字符”。)
答案 1 :(得分:2)