如何用正则表达式验证特定格式的15位数字串?
完善后的验证正则表达式
最终可用正则
^(?:[45]\d{4}|37\d{3})[-:\/]\d{5}[-:\/]\d{5}$
规则拆解
^和$:锁定整个字符串的开头和结尾,避免出现多余的前导或尾随字符(?:[45]\d{4}|37\d{3}):控制第一组5位数字的开头规则[45]\d{4}:第一组第一位必须是4或5,后面跟4位任意数字37\d{3}:第一组前两位必须是37,后面跟3位任意数字(?:...):单纯用来分组的非捕获组,不会额外保存匹配结果
[-:\/]:只允许用-、:、/这三种符号作为组之间的分隔符,其中/加转义是为了避免和正则的边界符冲突\d{5}:匹配中间和最后一组的5位数字
符合的验证逻辑
- 总长度严格为17位(5位数字+分隔符+5位数字+分隔符+5位数字)
- 字符串开头必须是4、5或者37
- 除了两个合法分隔符,其余位置只能是数字,不存在非数字字符
- 完全匹配整个输入串,不会漏掉前后的非法内容
内容的提问来源于stack exchange,提问作者Shiv Shankar Prasad
相关产品推荐
相关产品推荐

