javascript - 7 位数字的正则表达式,中间有可选的特殊字符

标签 javascript regex

我需要验证一个 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/

相关文章:

Javascript Regex 只替换第一次匹配出现

javascript - 在正则表达式javascript中仅排除0

c# 正则表达式替换\n

javascript - 在调试器中更改局部范围变量

javascript - 获取表id

javascript - 无法根据 Kendo UI 中的组合框选择正确填充 Kendo Treeview

php - 单词 null 或双引号中的字符串的正则表达式

regex - 如何在 Vim - Regex 中为数字添加引号?

php - 从单个 javascript 函数向两个不同的 PHP 脚本发送两个 Ajax 请求

javascript - 如何将简单值从 axios.post 发送到 asp.net 核心?