WalkerDi的技术专栏 PHP and SQL Coder

手机号码合法性判断

2018-10-13

阅读:


手机号码合法性判断

这里主要讲解如何利用正则表达式来验证手机号是否合法,匹配手机号码的正则表达式。

最新正则表达式截止到2018-10-13

/^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/

目前匹配号段

1.中国电信号段

133、149、153、173、177、180、181、189、199

2.中国联通号段

130、131、132、145、155、156、166、175、176、185、186

3.中国移动号段

134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198

4.其他号段

14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等等。

5.虚拟运营商

电信:1700、1701、1702 移动:1703、1705、1706 联通:1704、1707、1708、1709、171

php实现源码如下:

/**
     * 检测是否为手机
     * 旧:/^1[3|4|5|7|8][0-9]\d{4,8}$/
     * 新:/^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/
     * @param $phone 验证手机号
     * @return boolean
     *
     */
    public function is_tel($phone) {
        if (strlen ( $phone ) != 11 || ! preg_match ( '/^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/', $phone )) {
            return false;
        } else {
            return true;
        }
    }

Similar Posts

Comments