共计 1500 个字符,预计需要花费 4 分钟才能阅读完成。
记录一下 手机号验证方法
/**
* @description: 验证手机号正确性
* @param {string} phoneNumber 手机号
* @return {boolean} 是否验证通过 true| 返回运营商 - 通过 false- 不通过
*/
export const vaildPhoneNumber = (phoneNumber): string | boolean => {
// 规则说明 2019-12-24 工信部核发 190、192、196、197 号段
//【虚拟运营商】:170[1700/1701/1702]、162(电信),1703/1705/1706、165(移动),1704/1707/1708/1709(联通)、171、167(联通)//【卫星通信】:1740[0-5] (电信),1349(移动)
//【物联网网号】:10648、1440 (移动),10646、146(联通),10649、1410(电信)
//【国家工信部应急通信】:1740[6-9],1741[0-2]
// 所以整理分类号段
// 手机号码: 13[0-9], 14[5,6,7,8,9], 15[0-3, 5-9], 16[2,5,6,7], 17[0-8], 18[0-9], 19[0-3, 5-9]
// 移动号段: 13[4-9],147,148,15[0-2,7-9],165,170[3,5,6],172,178,18[2-4,7-8],19[5,7,8]
// 联通号段: 130,131,132,145,146,155,156,166,167,170[4,7,8,9],171,175,176,185,186,196
// 电信号段: 133,149,153,162,170[0,1,2],173,174[0-5],177,180,181,189,19[0,1,3,9]
// 广电号段: 192
const regMOBILE = /^(13[0-9]|14[5-9]|15[0-3,5-9]|16[2,5,6,7]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/;
const regCNMobilE = /^((13[4-9])|(14[7-8])|(15[0-2,7-9])|(165)|(178)|(18[2-4,7-8])|(19[5,7,8]))\d{8}|(170[3,5,6])\d{7}$/;
const regCNUnicom = /^((13[0-2])|(14[5,6])|(15[5-6])|(16[6-7])|(17[1,5,6])|(18[5,6])|(196))\d{8}|(170[4,7-9])\d{7}$/;
const regCNTelecom = /^((133)|(149)|(153)|(162)|(17[3,7])|(18[0,1,9])|(19[0,1,3,9]))\d{8}|((170[0-2])|(174[0-5]))\d{7}$/;
const regCNBroadcastingNetwork = /^((192))\\d{8}$/;
if (regCNMobilE.test(phoneNumber)) return '中国移动';
if (regCNUnicom.test(phoneNumber)) return '中国联通';
if (regCNTelecom.test(phoneNumber)) return '中国电信';
if (regCNBroadcastingNetwork.test(phoneNumber)) return '中国广电';
if (regMOBILE.test(phoneNumber)) return true;
return false;
};
正文完
发表至: typescript
2020-07-01