﻿/* 
二、11位移动电话号码的第一位为"1" 
三、12位移动电话号码的第二位为"1",第一位为0  
*/
function f_check_mobile(obj) {
    var regu = /(^[1][0-9]{10}$)|(^0[1][0-9]{10}$)/;
    var re = new RegExp(regu);
    if (re.test(obj)) {
        return true;
    }
    return false;
}
//电话号码判断
function f_check_phone(obj) {
    var regu = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
    //return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(this.Trim()));

    //var regu = /(^([0][1-9]{2,3}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0][1-9]{2,3}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/;
    var re = new RegExp(regu);
    if (re.test(obj)) {
        return true;
    }    
    return false;
}  

/* 判断是否为邮政编码 */
function f_check_zipcode(obj) {    
    if (!f_check_number(obj))
        return false; 
    if (obj.length != 6) {
        return false;
    }
    return true;
}

function f_check_number(obj) {
    if (/^\d+$/.test(obj)) {
        return true;
    }
    else {
        return false;
    }
}
/* 
功能：验证身份证号码是否有效 
*/ 
function f_check_IDno(obj) {
    var aCity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" };

    var iSum = 0;
    var info = "";
    var strIDno = obj.value;
    var idCardLength = strIDno.length;
    if (!/^\d{17}(\d|x)$/i.test(strIDno) && !/^\d{15}$/i.test(strIDno)) {
        return false;
    }

    //在后面的运算中x相当于数字10,所以转换成a   
    strIDno = strIDno.replace(/x$/i, "a");

    if (aCity[parseInt(strIDno.substr(0, 2))] == null) {
        return false;
    }

    if (idCardLength == 18) {
        sBirthday = strIDno.substr(6, 4) + "-" + Number(strIDno.substr(10, 2)) + "-" + Number(strIDno.substr(12, 2));
        var d = new Date(sBirthday.replace(/-/g, "/"))
        if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) {
            return false;
        }

        for (var i = 17; i >= 0; i--)
            iSum += (Math.pow(2, i) % 11) * parseInt(strIDno.charAt(17 - i), 11);

        if (iSum % 11 != 1) {
            return false;
        }
    }
    else if (idCardLength == 15) {
        sBirthday = "19" + strIDno.substr(6, 2) + "-" + Number(strIDno.substr(8, 2)) + "-" + Number(strIDno.substr(10, 2));
        var d = new Date(sBirthday.replace(/-/g, "/"))
        var dd = d.getFullYear().toString() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
        if (sBirthday != dd) {
            return false;
        }
    }
    return true;
}   
/* 
功能：判断是否为日期(格式:yyyy年MM月dd日,yyyy-MM-dd,yyyy/MM/dd,yyyyMMdd) 
*/ 
function f_check_date(obj) {
    var date = Trim(obj.value);
    var dtype = obj.eos_datatype;
    var format = dtype.substring(dtype.indexOf("(") + 1, dtype.indexOf(")"));  //日期格式   
    var year, month, day, datePat, matchArray;

    if (/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format))
        datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
    else if (/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format))
        datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日$/;
    else if (format == "yyyyMMdd")
        datePat = /^(\d{4})(\d{2})(\d{2})$/;
    else {
        return false;
    }
    matchArray = date.match(datePat);
    if (matchArray == null) {
        return false;
    }
    if (/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format)) {
        year = matchArray[1];
        month = matchArray[3];
        day = matchArray[4];
    } else {
        year = matchArray[1];
        month = matchArray[2];
        day = matchArray[3];
    }
    if (month < 1 || month > 12) {
        return false;
    }
    if (day < 1 || day > 31) {
        return false;
    }
    if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
        return false;
    }
    if (month == 2) {
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29) {
            return false;
        }
        if ((day == 29) && (!isleap)) {
            return false;
        }
    }
    return true;
}
function LTrim(str) {
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(0)) != -1) {
        var j = 0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1) {
            j++;
        }
        s = s.substring(j, i);
    }
    return s;
}
function RTrim(str) {
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(s.length - 1)) != -1) {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) {
            i--;
        }
        s = s.substring(0, i + 1);
    }
    return s;
} 
function Trim(str) {
    return RTrim(LTrim(str));
}
function f_check_email(obj) {
    var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]+$/;
    if (myReg.test(obj)) return true;
    return false;
}
function getlengthB(str) {
    return str.replace(/[^\x00-\xff]/g, "**").length;
}
