匹配移动/联通/电信手机号码正则表达式小结

    中国移动 134.135.136.137.138.139.150.151.152.157.158.159.187.188 ,147(数据卡)

    中国联 通130.131.132.155.156.185.186

    中国电信133.153.180.189

    CDMA 133,153

    正 则如下:

    复制代码代码如下:

    /// 匹配移动手机号

    public const string PATTERN_CMCMOBILENUM = @"^1(3[4-9]|5[012789]|8[78])\d{8}$";

    /// 匹配电信手机号

    public const string PATTERN_CTCMOBILENUM = @"^18[09]\d{8}$";

    /// 匹配联通手机号

    public const string PATTERN_CUTMOBILENUM = @"^1(3[0-2]|5[56]|8[56])\d{8}$";

    /// 匹配CDMA手机号

    public const string PATTERN_CDMAMOBILENUM = @"^1[35]3\d{8}$";

 

“^1(3[4-9]|4[7]|5[012789]|8[2378])\\d{8}$"
"^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"

"^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"

第一个是匹配手机号码的
第二个是匹配手机号码
第三个是匹配电子邮箱的。

手机前三个数字。
^1是文章的开头为1 ,3  匹配3  ,4-9匹配4-9 组合是134,135,136,137,138,139
|是或者147 或者150,151,152,157,158,159,或者182,183,187,188开头
\\\d{8}$'
\\d是数字。{8}为8位数字。$结束。
第二个和第一个类似,看懂第一个第二个也没啥好说的。
第三个是@符号前面a-z0-9A-Z,是大小写的字母加数字+是1-多个字符。-杠或者,\\.是匹配一个点
比如llds213. 或者sa24s-
@符号后面基本类似前面
不知道你能否明白?我是手敲的。正则工作后很有用,多看帮助文档。

 /**
     * 判断该手机号码是否是移动手机号段<br>
     * 
     * @param phone
     * @return true or false
     * @throws Exception
     */
    private boolean isMobileNumber(String phone) throws ServiceException {
        boolean isExist = false;

        phone = phone.trim();
        if (phone == null || phone.length() < 7) {
            try {
                throw new Exception("wrong phone length");
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
        String code = phone.substring(0, 7);// 暂时保留2009-01-16 16:30

        if (code.startsWith("134") || code.startsWith("135")
                || code.startsWith("136") || code.startsWith("137")
                || code.startsWith("138") || code.startsWith("139")
                || code.startsWith("159") || code.startsWith("158")
                || code.startsWith("150") || code.startsWith("157")
                || code.startsWith("151") || code.startsWith("188")
                || code.startsWith("189")) {
            isExist = true;
        }
        return isExist;

    }

 

posted on 2015-08-24 10:17  duanxz  阅读(3942)  评论(0编辑  收藏  举报