javascript - 使用正则表达式匹配 8 或 9 位数字

标签 javascript regex

我有一个我认为是简单的正则表达式问题 - 我是正则表达式的新手,所以,在这个问题上我的回答下降了大约 90%(我认为!)。

我需要匹配文本框中的两个字符串之一(所有数字)。

 1. ####-####
 2. ########

所以,第一个字符串是 9 个字符,中间是“-”。第二个字符串是 8 位数字,其中没有“-”。

我得到的是:

/[\d]{4}-??[\d]{4}/

效果很好,但是,由于第一个选项我必须允许使用 9 个字符,这也验证了#########(9 位数字),因为前 8 个字符与表达式匹配。

那么,我该怎么做呢?

我想也许包括 [^\d]?最后会这样做(可选,非数字,这会使第 9 位数字中断匹配),但是,那没有做......

感谢阅读!

最佳答案

您需要添加行首和行尾标记以确保只有此模式匹配。

/^[\d]{4}-?[\d]{4}$/

关于javascript - 使用正则表达式匹配 8 或 9 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20710638/

相关文章:

javascript - 即使存储时,extjs 网格也不会显示预期数据,并且网格对象中存在列

javascript - 使用 Angular 2

php - PHP 中用于输入验证的正则表达式

Python 正则表达式

javascript - 防止在时间范围内对同一 url 进行多次 AJAX 调用

javascript - 无响应的 Javascript 检查大量元素

c++ - 正则表达式检测 typedef/class 关键字之后的任何内容?

regex - Perl 条件替换

javascript - 单击“浏览”按钮更改默认窗口位置

regex - 如何使用Regex搜索不以另一个字符串开头的字符串