JavaScript正则匹配特定规则5位数字的问题求助
5位数字匹配正则优化方案
直接给你修改后的正则表达式:
const regex = /^(?!(\d)\1{4})[1-46-9]\d{4}$/;
规则拆解
^(?!(\d)\1{4}):保留你原来的负向前瞻逻辑,用来排除5位全重复的数字(比如11111这类所有位都相同的情况)[1-46-9]:指定首字符的允许范围,直接覆盖1-4和6-9,完美排除首字符为5的情况\d{4}:匹配剩余的4位任意数字$:确保字符串刚好到第5位结束,避免匹配到超过5位的数字(比如899991这类6位数字)
示例验证
符合匹配规则的:
12345:首字符在允许范围,且不全重复22220:首字符在允许范围,最后一位不同,不属于全重复90279:首字符在允许范围,不全重复
不符合匹配规则的:
11111:被负向前瞻排除(全重复)59876:首字符为5,不在允许范围899991:长度超过5位,被$限制排除
内容的提问来源于stack exchange,提问作者MrWalterWhite
相关产品推荐
相关产品推荐

