您的位置:

如何正确匹配手机号?使用正则表达式!

一、什么是正则表达式?

1、正则表达式是一种文本模式,描述在搜索文本时所需匹配的一系列字符串。

2、正则表达式由字符和操作符构成。

3、使用正则表达式可以完成各种文本操作,如文本匹配、查找、替换等。

二、如何用正则表达式匹配手机号?

1、手机号由11位数字组成。

2、手机号第一位为1,第二位为3、5、6、7、8、9之一。

3、代码示例:

let regex = /^1[356789]\d{9}$/;
let phoneNumber = "13712345678";
if(regex.test(phoneNumber)){
    console.log("匹配成功");
}else{
    console.log("匹配失败");
}

三、手机号中间添加空格或短横线的处理方法

1、在正则表达式中使用分组,使用()包裹需要添加空格或短横线的位置,再在正则表达式中使用\1、\2等引用分组中的内容。

2、代码示例:

let regex = /^1([356789]\d{9})$/;
let phoneNumber = "137 1234 5678";
phoneNumber = phoneNumber.replace(/\s|\-/g,"");//去除空格和短横线
if(regex.test(phoneNumber)){
    phoneNumber = phoneNumber.replace(regex, "1$1").replace(/(\d{3})(\d{4})(\d{4})/, "$1 $2 $3");//添加空格
    console.log(phoneNumber + " 匹配成功");
}else{
    console.log("匹配失败");
}

四、匹配多个手机号码

1、如果需要匹配多个手机号码,可以将手机号码用分隔符隔开。

2、代码示例:

let regex = /^1[356789]\d{9}$/;
let phoneNumberStr = "13712345678,18923456789,13545678901";
let phoneNumberArray = phoneNumberStr.split(",");
let isValid = true;
for(let i=0;i