正则表达式不匹配字符串的确切长度

时间:2016-02-06 21:27:01

标签: regex

我有以下正则表达式验证卡号

[\d+]{6,6}[X|x]{8,8}[\d+]{4,4}

我想验证以下有效卡号

 123456XXXXxxxx1234

但是任何额外的东西都不应该匹配。

 123456XXXXxxxx1234a
bbb123456XXXXxxxx1234nnn

这就是不应该匹配的。

我试过这个正则表达式,但它对我不起作用。

^[\d+]{6,6}[X|x]{8,8}[\d+]{4,4}$

1 个答案:

答案 0 :(得分:3)

您的[\d+]{4,4}匹配4位数或+个符号。我想你的意思是\d{4}(4位)。此外,[X|x]{8,8}匹配8 Xx|符号。我想你只需要[Xx]{8}

我相信你需要

^\d{6}[Xx]{8}\d{4}$

请参阅regex demo

如果您有时间,可能需要详细了解Character Classes or Character Sets