VIN验证正则表达式

维基

我已经基于http://en.wikipedia.org/wiki/Vehicle_identification_number编写了VIN验证RegEx,但是当我尝试运行一些测试时,它不接受一些有效的VIN编号。

我的RegEx:

^[A-HJ-NPR-Za-hj-npr-z\\d]{8}[\\dX][A-HJ-NPR-Za-hj-npr-z\\d]{2}\\d{6}$

VIN号不起作用:
1ftfw1et4bfc45903
WP0ZZZ99ZTS392124

VIN Numbers Working:
19uya31581l000000
1hwa31aa5ae006086

(我认为问题出在数字的末尾,Wikipedia听起来好像只能以6个数字结束,而一个无效但有效的数字只能以5结尾)

任何帮助纠正此问题将不胜感激!

乔·德罗斯

我无法为您提供完善的VIN码正则表达式-但是我可以解释为什么在您的1ftfw1et4bfc45903示例中此表达式失败了

^[A-HJ-NPR-Za-hj-npr-z\d]{8}[\dX][A-HJ-NPR-Za-hj-npr-z\d]{2}\d{6}$

说明:

  • ^[A-HJ-NPR-Za-hj-npr-z\d]{8}
    这允许8个字符,由IOQ以外的任何数字和字母组成它会正确找到前8个字符:
    1ftfw1et
  • [\dX]
    这允许1个字符,可以是数字或大写的X它会正确找到下一个字符:
    4
  • [A-HJ-NPR-Za-hj-npr-z\d]{2}
    这允许2个字符,由I,O和Q以外的任何数字和字母组成;它会正确找到下两个字符:
    bf
  • \d{6}$
    正好允许6位数字,这是正则表达式失败的原因;因为最后6个字符不是全数字:
    c45903

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章