这几天有人问验证手机号的校验规则,正好有时间整理一下。校验手机号大概有一下几种:
1. 只校验是否为11位数字
const reg = /^\d{11}$/;
let str = '12345678901';
reg.test(str);
2. 校验是否为11位数字并且首位字符是1
const reg = /^1\d{10}$/;
3. 对手机号进行精确校验
const reg = /^[1][3-9][0-9]{9}$/;
这个正则表达式的意思是:
1--以1为开头;
2--第二位可为3,4,5,7,8,中的任意一位;
3--最后以0-9的9个整数结尾
以前手机号基本上是以13,15,17,18,开头的手机号,但是现在好像有14开头的号码,所以添加了14;当然,如果以后要是发展成有16,或者19,之类的开头号码的话,在[3,4,5,7,8]中添加即可。
备注:我这用的是ES6的语法,如果大家用的是ES5请将const和let改为var。
最后还是希望大家根据自己的产品需求,选择合理的校验方式~
网友评论