- 作者:合肥PHP建站
- 发表时间:2023-09-15 10:09:32
- 来源:合肥PHP建站
以下是一个用于获取中国大陆手机号码的正则表达式,适用于 PHP 语言:
$pattern = '/^(?:\+86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[235-8]\d{2}|4(?:0\d|1[0-2]|9\d))|9[189]\d{2}|6[2567]\d{2}|4(?:[14]0\d{3}|[68]\d{4}|[579]\d{2}))\d{6}$/';
这个正则表达式可以匹配以数字 1 开头,第二位为 3、5、8、7、9,后面跟着任意数字的手机号码。另外,这个正则表达式还考虑了以数字 1 开头,第二位为 6,后面跟着任意数字的手机号码。
你可以使用 preg_match() 函数来进行匹配,例如:
$pattern = '/^(?:\+86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[235-8]\d{2}|4(?:0\d|1[0-2]|9\d))|9[189]\d{2}|6[2567]\d{2}|4(?:[14]0\d{3}|[68]\d{4}|[579]\d{2}))\d{6}$/';
$phoneNumber = '13812345678';
if (preg_match($pattern, $phoneNumber)) {
echo '手机号码有效';
} else {
echo '手机号码无效';
}
注意,这个正则表达式并没有考虑以数字 1 开头,第二位为 4 且后面跟着 10 位数字的情况,因为这种格式的手机号码通常是用于物联网设备的。如果你需要匹配这种格式的手机号码,请将正则表达式中的 4(?:[14]0\d{3}|[68]\d{4}|[579]\d{2}) 部分修改为 4[1-9]\d{9}。
