JavaScript正则需求:以AB开头后接数字,可选大写字母结尾
符合要求的JavaScript正则表达式解决方案
需求回顾
字符串需满足以下规则:
- 必须以
AB开头 - 开头后紧跟一个或多个数字
- 结尾可选添加一个大写英文字母
有效示例:AB00001、AB000001B、AB12122、AB00001C
原正则的问题
你提供的示例正则^AB+[0-9A-Z?]+$存在以下缺陷:
AB+会匹配AAAB、ABBB这类不符合开头要求的字符串,我们需要严格匹配AB而非重复的A或B[0-9A-Z?]+包含了不必要的?符号,且未区分数字部分和可选结尾字母,会允许AB?、AB12?这类无效字符串
正确的正则表达式
/^AB\d+[A-Z]?$/
正则拆解说明
^:锚定字符串的起始位置AB:严格匹配开头的固定字符AB\d+:匹配一个或多个数字(等价于[0-9]+)[A-Z]?:匹配0个或1个大写英文字母,?表示该部分可选$:锚定字符串的结束位置
验证有效示例
AB00001:匹配成功(AB开头+数字,无结尾字母)AB000001B:匹配成功(AB开头+数字+大写字母B)AB12122:匹配成功(AB开头+数字)AB00001C:匹配成功(AB开头+数字+大写字母C)
内容的提问来源于stack exchange,提问作者Akki
相关产品推荐
相关产品推荐

