JavaScript正则表达式匹配问题求助:特定格式字符串匹配失败
正则匹配问题解决方案
正确的正则表达式
^(ABC|ACD|BCD)-[58]\d{4}$
各部分解析
^:锚定字符串起始位置,确保匹配从开头开始(ABC|ACD|BCD):分组匹配三个指定的三位固定字符串之一,严格限制前3个字符只能是这三个选项-:匹配固定的连字符,无需转义[58]:匹配数字5或8,字符集里直接写目标数字即可,不用加|(加了会把|当成要匹配的字符)\d{4}:匹配任意4位数字,和[0-9]{4}功能完全一致,写法更简洁$:锚定字符串结束位置,确保整个字符串完全符合规则
你原来正则的错误点
- 开头的
[^ABC$|^ACD$|^BCD$]是字符集取反,意思是匹配除了A、B、C、$、|这些字符之外的任意单个字符,完全不符合你要匹配三个固定字符串的需求 [*-]是字符集,会匹配*或者-,而你需要的是严格匹配连字符-,直接写-即可[5|8]里的|是多余的,字符集内部不需要用|来分隔选项,否则会把|当作一个可匹配的字符
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

