正则表达式校验以斜杠开头的三位/四位数字(四位需以1开头)
正则校验方案解答
关于[101-1056]写法的问题
你完全正确,[101-1056]这种写法是错误的。正则中的方括号代表字符集,它只会匹配单个字符,里面的内容会被拆解成单个字符和无效的范围规则(比如1-10这种跨多位数字的范围在字符集里不生效),根本无法表达101到1056这样的数字区间。
符合要求的正则表达式
针对你需求的「以斜杠开头,数字范围101-1056,四位数字必须以1开头」,可以用以下正则实现:
/^\/(10[1-9]|1[1-9]\d|[2-9]\d{2}|10(0\d|[1-4]\d|5[0-6]))$/
正则拆解说明
^\/:匹配开头的斜杠,确保输入以斜杠起始- 三位数字区间(101-999):
10[1-9]:匹配101-1091[1-9]\d:匹配110-199[2-9]\d{2}:匹配200-999
- 四位数字区间(1000-1056):
100\d:匹配1000-100910[1-4]\d:匹配1010-1049105[0-6]:匹配1050-1056
$:匹配输入结尾,确保没有多余字符
这个正则天然满足「四位数字只能以1开头」的要求,因为四位部分的规则只限定了10xx的格式,不会匹配其他开头的四位数字。
内容的提问来源于stack exchange,提问作者EagerToSing
相关产品推荐
相关产品推荐

