护照号码的正则表达式 [英] Regex for Passport Number

查看:1013
本文介绍了护照号码的正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试对护照号码进行正则表达式验证.

I am trying to implement regex validation for passport number.

我的要求是

  1. 长度应至少3个字符,最多20个字符.
  2. 不应仅是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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆