大家都应该有这个常识,中国的手机号码都是以数字“1”开头,然后利用“0~9”10个数字组成的11位数字组合,那么我们的验证规则肯定要根据这个思路来写。
根据上面的简单思路,我们便可以写下以下的验证代码,代码如下:

<?php
//本代码仅仅是提供一些思路
//距离实际应用还有一些距离
$mobile = '';
//下面的1便是手机的第一位数字必须为数字1
//[0-9]指后面的数字均为0~9的数字
//{9}这中间的9指的是手机号码除了第一位数外,其他要重复10次,刚好就是11位数了
if(!preg_match('/^1([0-9]{9})/',$mobile)) exit('您的手机号码不正确');
?>

但上面的代码显然是不够严谨的,因为这样,即使“18888888888”这样的手机号码也能通过验证了,因此我们还要对其进行更为严格的验证,在严格之前请让我们先来看看中国常见的手机号码前三位都有那些:
移动手机号码:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188

联通手机号码:130、131、132、152、155、156、185、186

电信手机号码:133、153、180、189、(1349卫通)
那么根据上面的特征,我们就可以将代码修改成这样的规则了,代码如下:

<?php
function checkMobile($str)
{
$pattern = “/^(|)d{}$/”;
if (preg_match($pattern,$str))
{
Return true;
}
else
{
Return false;
}
}
//调用函数
$str = checkMobile(“″);
if($str)
{
echo(“符合手机号码标准”);
}
else
{
echo(“不符合手机号码标准”);
}
?>

上面只能骓13,15开头的,如果有新段就不行了,我们可加以修改,代码如下:

function is_mobile($str){
return preg_match("/^(((d{3}))|(d{3}-))?13d{9}$/", $str);
}

这样就可以验证所有的手机号码了,整个解析思路环环相扣,针对php验证手机号码进行详细分析,得出解决方法。

php验证手机号码的更多相关文章

  1. jquery验证手机号码和固定电话号码

    <pre name="code" class="javascript"> //验证手机号码或者电话号码 function checkContactN ...

  2. jquery验证手机号码、邮箱格式是否正确示例代码

    本文为大家介绍下使用jquery验证邮箱.验证手机号码,具体实现思路及代码如下,感兴趣的朋友可以学习下 复制代码代码如下: //jquery验证邮箱  function checkSubmitEmai ...

  3. JS和正则表达式验证手机号码、邮箱等

    <-------------------------------------验证手机号码---------------------------------------------> fun ...

  4. java验证手机号码是否合法

    公司开发新功能须要验证手机号码,遂自己写了个出来,暂仅仅支持中国大陆手机号验证.如有不妥之处,还望大家指教,感激不尽! /** * 验证是否是正确合法的手机号码 * * @param telephon ...

  5. js 验证手机号码

    js 验证手机号码 //验证手机号        function isMobel(value) {           if (/^1[3-8]+\d{9}$/g.test(value)) {    ...

  6. easyUI 验证控件应用、自己定义、扩展验证 手机号码或电话话码格式

    easyUI 验证控件应用.自己定义.扩展验证 手机号码或电话话码格式 在API中   发现给的demo 中没有这个验证,所以就研究了下. 相关介绍省略,直接上代码吧! watermark/2/tex ...

  7. 最新JS正则表达式验证手机号码(2019)

    根据移动.联通.电信的电话号码号段,实现一个简单的正则表达式来验证手机号码: // 手机号校验 export function isPhoneNumber(phoneNum) { // let reg ...

  8. java 验证手机号码、电话号码(包括最新的电信、联通和移动号码)

    一.目前的号码段(2016-12-8更新)   二.代码 package com.test; import java.util.regex.Pattern; public class CheckPho ...

  9. jquery实践案例--验证手机号码

    如果要做手机号的验证,那么我们需要知道手机号码的号段. 182 183 187 188 155 156 176 186 189 //移动运营商:170 移动: 2G号段(GSM):134-139.15 ...

随机推荐

  1. rman异机恢复(RAC双节点恢复到单节点)

    一.数据库全备 RUN {ALLOCATE CHANNEL ch00 DEVICE TYPE disk;ALLOCATE CHANNEL ch01 DEVICE TYPE disk;backup as ...

  2. Codeforces 519E A and B and Lecture Rooms [倍增法LCA]

    题意: 给你一棵有n个节点的树,给你m次询问,查询给两个点,问树上有多少个点到这两个点的距离是相等的.树上所有边的边权是1. 思路: 很容易想到通过记录dep和找到lca来找到两个点之间的距离,然后分 ...

  3. poj 3080 Blue Jeans

    点击打开链接 Blue Jeans Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10243   Accepted: 434 ...

  4. 用HTML代码加载Unity内容(unity频道:http://unity3d.9ria.com/)

    Unity内容在浏览器通过Unity网络播放器插件加载.HTML代码与这个插件通常不直接通信,而是通过UnityObject的脚本帮助.其主要任务是Unity的内容嵌入一个非常简单的任务,通过从各种浏 ...

  5. C - Fractal(3.4.1)

    Description A fractal is an object or quantity that displays self-similarity, in a somewhat technica ...

  6. SVN小小用法(一)svn服务器搭建

    最近由于公司项目用SVN作为版本控制工具,本着学一点是一点的原则,今天小配了下svn,给大家介绍一下 软件:TortoiseSVN-1.8.3.24901-win32-svn-1.8.4.msi(本人 ...

  7. php 判断数组是否为空的几种方法

    php数组为空我们可以通过很多php自带函数来实现了,比如count函数,empty函数等都可以判断数组是否为空,下面小编就为各位整理了不少的判断数组是否为空的函数,希望对各位会带来帮助. PHP判断 ...

  8. [分享·JavaScript]提取Table中的内容到XML对象

    在公司工作的时候,经常需要在前端进行这样的数据提取的操作.而之前的针对每个页面中的Table都重新写原生的JS代码效率太低,且不方便aspx对XML进行处理. 所以,在今天抽时间写了这么一个JS类,见 ...

  9. cmd中目录的变更

    1.在同一个盘符下的目录的切换使用cd加空格加子目录进行切换 2.在不同的盘符下进行切换直接使用在当前目录后面加上其他盘符的名称即可

  10. UVA 10892 - LCM Cardinality

    Problem F LCM Cardinality Input: Standard Input Output: Standard Output Time Limit: 2 Seconds A pair ...