寻求符合全部规则的澳大利亚驾照验证正则表达式
澳大利亚驾照验证正则表达式解决方案
以下是符合你所有需求的正则表达式,已覆盖所有指定格式、排除规则:
^(?!.*(\d)\1{4}$)(?!^(00000000|11111111|12345678|111111111|123456789|0000000000|1234567890|A00000|B00000)$)(?:\d{2}([- ])\d{3}\1\d{3}|\d{3}([- ])\d{3}\2(?:\d{3}|\d{4})|\d{8}|\d{9}|\d{10}|[A-Za-z]\d{5})$
规则拆解与解释
排除结尾5个重复数字
(?!.*(\d)\1{4}$):通过负向预查,确保字符串结尾不是连续5个相同数字(如xxxx00000、x11111这类会被排除)
排除常见测试号码
(?!^(00000000|11111111|12345678|111111111|123456789|0000000000|1234567890|A00000|B00000)$):这里列出了常见的测试用号码,你可以根据实际需求新增或删除测试号条目
覆盖所有指定格式
\d{2}([- ])\d{3}\1\d{3}:匹配8位带统一分隔符的格式(如12 345 678、12-345-678),\1保证分隔符(空格或连字符)前后一致\d{3}([- ])\d{3}\2(?:\d{3}|\d{4}):匹配9位/10位带统一分隔符的格式(如123 456 789、123-456-7890),\2确保分隔符统一\d{8}|\d{9}|\d{10}:匹配纯数字的8/9/10位格式[A-Za-z]\d{5}:匹配首字母(大小写均可)+5位数字的6位格式(如A12345、z98765)
使用注意事项
- 正则使用
^和$锚点,确保完全匹配输入字符串,避免部分匹配无效内容 - 若需要支持更多测试号码的排除,直接在第二个负向预查的括号内添加对应的号码即可
- 分隔符仅允许统一使用空格或连字符,不支持混合分隔(如
123-456 789这类会被拒绝,符合实际驾照号码格式规范)
内容的提问来源于stack exchange,提问作者Lumos
相关产品推荐
相关产品推荐

