**一行文本里有多个人员的手机号码(例如:今日2021年7月2日张三(手机号:15978941236),王四12347895623,李八手机号23014567859,相约去菜市场买菜。)如何用正则表达式筛选出所有的手机号码?******
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="stylesheet" type="text/css" href="Login.css" />
</head>
<body>
</body>
<script language=javascript>
var content = '我的电话是:15267854101,.妈妈的电话:13067854108.kghjkg哥哥的电话:15267854108';
content = '今日2021年7月2日张三(手机号:15978941236),王四12347895623,李八手机号23014567859,相约去菜市场买菜';
var isMobile = /(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}/g;
var pNums = content.trim().match(isMobile);
if (pNums == null || pNums == "") {
alert("未识别任何信息!");
}
console.log(pNums)
</script>
</html>
一個也可以 換一種篩選
完全匹配手机号是否好用最好进行切割取出每一个手机号验证正则 应该不可能实现一个正则去匹配你这一个文本的要不如楼上不做太多验证 只要满足1开头 11位
var pattern = /[1][3,4,5,6,7,8,9][0-9]{9}/gi;
var str = '今日2021年7月2日张三(手机号:15978941236),王四12347895623,李八手机号23014567859,17810234567相约去菜市场买菜。';
var strArr=str.split(",");
let arr=[];
strArr.map((item)=>{
console.log(item)
if(pattern.test(item)){
arr.push(item.match(pattern));
}
})
console.log(arr.flat());//flat es6拉平数组,多维转换一维
'**一行文本里有多个人员的手机号码(例如:今日2021年7月2日张三(手机号:15978941236),王四12347895623,李八手机号23014567859,相约去菜市场买菜。)如何用正则表达式筛选出所有的手机号码?******'.match(/1\d{10}/gi)
简单的验证下,手机号必须数字1开头,11位数字