正则表达式判断手机号码属于哪个运营商

正则表达式能判断出来运营商,和后续的添加维护功能。

看你对匹配的精度的要求高不高了,如果单纯判断开头三位数字的话:
[code="java"]//电信
String telcomPattern =
"(189|153|133)[0-9]{8}";

    //测试
    String[] phoneNums = {
            "18902481111",
            "a",
            "189",
            "13244445555"
    };
    for (String phoneNum : phoneNums) {
        System.out.println(phoneNum.matches(telcomPattern));
    }[/code]

[code="java"]

/**
* 返回类型
1 中国移动
2 中国联通
3 中国电信
0 无法识别
**/

function validate(phoneno){

    var regex = /^(134|135|136|137|138|139|150|151|157|158|159)[0-9]{8}$/;
    if(regex.test(phoneno)){
        alert("中国移动!");
        return 1;
    }
    regex = /^(130|131|132|155|156)[0-9]{8}$/;
    if(regex.test(phoneno)){
        alert("中国联通!");
        return 2;
    }
    regex = /^(133|153|189)[0-9]{8}$/;
    if(regex.test(phoneno)){
        alert("中国电信!");
        return 3;
    }
    return 0;
}

[/code]