我有一个我认为是简单的正则表达式问题 - 我是正则表达式的新手,所以,在这个问题上我的回答下降了大约 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/