js:本地外地手机判断


/*本地手机数据集*/
var arr = new Array(1868020,1868021
)
/*本地、外地手机检测*/
function GetZeroByPhone(phone) {
    var partten = /^0(([1-9]\d)|([3-9]\d{2}))\d{8}$/; //没有中间那段 -的 座机格式是 01098909899  
    if (partten.test(phone) || phone.toString().length < 11 ||  phone.toString().length > 11) {
        //座机
        return "";
    }
    var value = phone.substring(0, 7);
    var startIndex = 0,
    endIndex = arr.length - 1; middle = Math.floor((endIndex - startIndex) / 2);
    var loop = 0; //中断因子,若15次还未有结果,则跳出循环,防止死循环
    while (arr[middle] != value && startIndex < endIndex && (++loop) < 15) {
        if (arr[middle] > value) {
            endIndex = middle - 1;

        } else if (arr[middle] < value) {
            startIndex = middle + 1;
        }
        middle = startIndex + Math.floor((endIndex - startIndex) / 2);
    }
    return (arr[middle] == value) ? "" : "0";
}

/*拨号前手机加前缀,若手机号是否本地手机,则电话号码前要加0*/
function PhoneNum(phone) {
    //selPrefix: 1自动检测 2拨号加0 3拨号不加0
    var selPrefix = ""; //指定前台是否加0
    if (document.getElementById("ddlPrefix") != undefined) {
        selPrefix = document.getElementById("ddlPrefix").value;
    }
    if (selPrefix == undefined || selPrefix == "" || selPrefix == "1") {
        return PhonePrefix + GetZeroByPhone(phone) + phone;
    } else if (selPrefix == "2") {
        return PhonePrefix + "0" + phone;
    } else if (selPrefix == "3") {
        return PhonePrefix + phone;
    }
}

posted on 2013-06-16 14:37  heqianjin  阅读(294)  评论(0)    收藏  举报