如何编写适配尼日利亚电话号码体系的regex校验正则表达式
尼日利亚电话号码正则匹配方案
最终可用正则表达式
/^(?:\+?234[-\s()]*)?(?:01|1[-\s()]*)?(?:[-\s()]*\d){11}$/gm
调整说明
你原有表达式的问题是强制要求号码开头必须带+234或234,因此无法匹配无此前缀的本地号码,本次调整做了以下修改:
- 将国家码前缀改为可选非捕获分组
(?:\+?234[-\s()]*)?,允许号码不带234前缀,同时兼容前缀后跟随空格、短横线、括号的分隔格式 - 新增可选地区标识匹配规则
(?:01|1[-\s()]*)?,覆盖01、1开头的本地号码格式 - 用
[-\s()]*匹配所有允许的分隔符(空格、短横线、括号),适配示例中出现的所有分隔写法 - 用
(?:[-\s()]*\d){11}限制除静态前缀外的有效数字刚好为11位,符合长度校验规则 - 保留
^、$锚点和gm标识,确保整行匹配、支持多行校验
匹配覆盖范围
该表达式可覆盖你列出的全部13种号码格式,原有无法匹配的4种无234前缀的号码也可正常命中,完全符合你给出的所有校验规则。
内容的提问来源于stack exchange,提问作者user627341
相关产品推荐
相关产品推荐

