JavaScript 如何校验手机号

你有没有过这种经历:在网上填注册信息,输完手机号点提交,页面立马弹出“请输入正确手机号”的提示?这背后其实是一段不起眼的代码在干活——用JavaScript校验手机号。今天咱们就把这件事拆成大白话,看看它到底是怎么回事。

先搞懂:手机号校验到底要查什么

要做校验,得先知道咱们国家的手机号有什么规律。就像咱们寄快递,得有符合格式的邮编,手机号也有固定的规则:开头是1,第二位是3到9的数字,后面跟着9个数字,总共11位。比如138XXXX1234、159XXXX7890,这都是符合规则的;要是12开头、只有10位,或者有字母、符号,那肯定不对。

JavaScript 如何校验手机号

JavaScript做校验,核心就是“按规则查错”,就像你收快递先看邮编位数对不对,再看开头数字对不对,最后看有没有填错内容。

第一步:先筛掉明显的错误

先处理最容易发现的问题,就像你挑苹果先捡烂的扔了一样。

比如有人填手机号时,不小心输了字母“a”或者符号“-”,这肯定不对。咱们可以用一个简单的方法:把输入的内容和纯数字的11位字符串比一比,不一样就是错的。

举个例子:你在输入框输了“138a1234567”,这里有个字母,肯定不对;要是输了“1381234567”,只有10位,也不对。这一步就是把这些“一眼错”的情况排除掉,代码里可以用判断“长度是不是11位”“是不是全是数字”来实现,就像你数快递邮编的位数对不对。

第二步:再查手机号的开头规则

刚才说的只是基础,还有更细的要求。比如咱们国家现在的手机号第二位,一般是3到9的数字(早年有过134-139、150-159这些,现在还在沿用的主要是1开头后接3-9)。要是有人填了“12812345678”,开头是12,这就不符合规则,得拦下来。

这一步就像你核对快递的邮编是不是本地的范围,要是跑外地去了,也不对。咱们可以用一段简单的“匹配规则”来查:把手机号的前两位拿出来,看是不是在13到19之间(当然,实际代码里会更严谨,比如包含所有正规号段,比如17开头的物联网号段,但核心逻辑就是核对开头的数字范围)。比如“17712345678”前两位是17,符合要求;“11212345678”前两位是11,就不对。

最后:写个简单的例子,一看就懂

咱们拿实际场景说,比如你做一个注册页面,输入手机号后点提交,就会触发这段小代码:

先拿用户输入的内容,先看是不是11位纯数字,不是就弹“请输入11位纯数字手机号”;

再看前两位是不是符合规则,不符合就弹“请输入正确的手机号开头”;

都对了,就放行,让注册继续。

比如用户输“13912345678”,第一步查是11位纯数字,第二步查前两位13符合,就没问题;要是输“12345”,第一步就卡住,直接提示错了。

其实JavaScript校验手机号,就是这么个“先看长度、再看内容、最后核对规则”的过程,没有你想的那么复杂。它就像你帮朋友收快递,先数邮编位数对不对,再看开头是不是本地的,最后看有没有填错字,把明显的错误拦在前面,既不让用户填错,也能帮平台过滤无效信息。

上一篇 PHP 如何做支付接口