一条 ^1[3-9]\d{9}$ 即可校验中国大陆 11 位手机号。下面可以直接粘贴号码测试,实时查看是否命中与命中位置。
默认正则
/^1[3-9]\d{9}$/
匹配中国大陆 11 位手机号:首位为 1,第二位 3-9,其余 9 位为数字。
手机号是最常见的表单校验项。中国大陆现行手机号为 11 位,首位固定为 1,第二位为 3-9,后 9 位为数字。
因此正则 ^1[3-9]\d{9}$ 用 ^ 与 $ 锚定整串,避免在长文本中误匹配到其中一段数字。
如果只是从文本中提取号码而非校验整串,应去掉 ^ 与 $,否则会漏掉夹在文字中的号码。
138001380001991234567815900000000123456789011380013800138001380001Q:手机号正则需要加 ^ 和 $ 吗?
校验整串时必须加,否则 138001380001 这类超长数字也会命中其中 11 位。若用于从文本中提取号码,则应去掉锚点。
Q:为什么 199 号段能匹配?
第二位为 3-9,9 在范围内,所以 19 开头的新号段可以匹配;第二位为 1、2 的号码不匹配。
Q:要支持国际区号怎么办?
可在前面加可选区号,例如 ^(?:\+?86)?1[3-9]\d{9}$,并注意去除空格与连字符。
Q:测试数据会上传吗?
不会。匹配在浏览器本地执行,不产生网络请求。