我需要验证一个 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 应用程序中实现它。
最佳答案
仅重复组(7 次,所以您总共得到 7 位数字),也不要重复 \d
(否则您可能会匹配更多数字超出预期):
^(?:\d-?){7}$
https://regex101.com/r/yLQHWW/1
(您的原始模式相当于:“匹配一个或多个数字,可选择后跟最多 7 个 -
字符”。)
关于javascript - 7 位数字的正则表达式,中间有可选的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56272310/