首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合使用正则表达式进行移动号码验证

结合使用正则表达式进行移动号码验证
EN

Stack Overflow用户
提问于 2019-03-21 16:38:02
回答 2查看 117关注 0票数 0

场景:前端验证-手机号码必须是数字,必须以'02‘开头,至少有8个?数字字符,限制为13?数字字符

示例:

MSISDN errorMessage 021123请输入有效的沃达丰手机号码091234567请输入有效的沃达丰手机号码02112345678910请输入有效的沃达丰手机号码abcdefghijkl请输入有效的沃达丰手机号码021$123456请输入有效的沃达丰手机号码

此外,当我在输入字段中输入数字时,数字的格式应为021 055555。前三个数字后有空格。

有没有人能帮我形成这种例子的正则表达式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-21 16:47:22

这类东西会有所帮助的。

代码语言:javascript
复制
input.match(/^02[0-9]{6,11}$/)

说明:输入显然就是输入。^确保这是要匹配的字符串的开始位置。[0-9]表示后续字符必须在0到9之间,{6-11}表示这些字符可以重复6到11次。末尾的$表示字符串必须在这里结束。

票数 0
EN

Stack Overflow用户

发布于 2019-03-21 16:44:57

我相信这个正则表达式将执行您需要的匹配:

代码语言:javascript
复制
const numbers = [
  "023 45678901",
  "023 456789012",
  "023 4567890123",
  "033 45678901",
  "013 45678901",
  "013 45",
  "013 45678901234567",
]

const numberIsValid = number => !!number.match(/02\d\s\d{5,10}/)

console.dir(numbers.map(numberIsValid))

下面是正则表达式的每个部分所做的工作:

02按字面匹配字符02 (区分大小写)

\d匹配一个数字(等于0-9)

\s匹配任何空格字符(等于\r\n\t\f\v )

\d{5,10}匹配一个数字(等于0-9)

{5,10}量词-匹配5到10次,尽可能多,按需回馈(贪婪)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55276474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档