护照号码的正则表达式 [英] Regex for Passport Number
本文介绍了护照号码的正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试对护照号码进行正则表达式验证.
I am trying to implement regex validation for passport number.
我的要求是
- 长度应至少3个字符,最多20个字符.
- 不应仅是0
我尝试了以下正则表达式
I tried with the below regular expression
^(?! 0 {3,20})[a-zA-Z0-9] {3,20} $
^(?!0{3,20})[a-zA-Z0-9]{3,20}$
这似乎在大多数情况下都有效,但是如果我的文本包含3个或多个前导零,它似乎会失败.例如"00000001".
This seems to work for most of the cases, but incase my text contains 3 or more leading zeros, it seems to fail. Such as '00000001'.
匹配示例
- 101AE24-正常工作
- 00-无法正常工作
- 01234-正常工作
- 00001-不起作用(但也应该匹配)
任何帮助将不胜感激.
推荐答案
这怎么办?
^(?!^0+$)[a-zA-Z0-9]{3,20}$
我们不是说拒绝3-20个零的值",而是说拒绝仅 包含零的任何内容(无论长度如何,因为<3和> 20都会失败")
Instead of saying 'reject values with 3-20 zeros', we can just say 'reject anything that only contains zeros (regardless of the length, since <3 and >20 fail anyway)
这篇关于护照号码的正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文