﻿// JScript 文件
//检查是否为整数
function isInteger(s)
{
    if(s!=null){
        var r,re;
        re = /\d*/i; //\d表示数字,*表示匹配多个数字
        r = s.match(re);
        return (r==s)?true:false;
    }
    return false;
}
//检查是否为数字
function isNumeric(s) {
    if (s != null && rTrim(lTrim(s)) != "") {
        return !isNaN(s);
    }
    return false;
}

//检查序号
function checkOrderID(orderID)
{
    if(orderID.value=="")
    {
        alert("序号不能为空!");
        return false
    }
    else
    {
        if(isInteger(orderID.value)==false)
        {
            alert("序号必须为整数!");
            return false;
        }
    }
    return true;
}

//检查日期
function isDate(dateString) {
    if (trim(dateString) == "") return true;
    //年月日正则表达式
    var r = dateString.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    if (r == null) {
        alert("请输入格式正确的日期\n\r日期格式：yyyy-mm-dd\n\r例    如：2008-08-08\n\r");
        return false;
    }
    var d = new Date(r[1], r[3] - 1, r[4]);
    var num = (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]);
    if (num == 0) {
        alert("请输入格式正确的日期\n\r日期格式：yyyy-mm-dd\n\r例    如：2008-08-08\n\r");
    }
    return (num != 0);
}

//去除左边空格
function lTrim(str) {
    if (str.charAt(0) == " ") {
        //如果字串左边第一个字符为空格  
        str = str.slice(1); //将空格从字串中去掉  
        //这一句也可改成 str = str.substring(1, str.length);  
        str = lTrim(str);    //递归调用  
    }
    return str;
}
//去掉字串右边的空格  
function rTrim(str) {
    var iLength;
    iLength = str.length;
    if (str.charAt(iLength - 1) == " ") {
        //如果字串右边第一个字符为空格  
        str = str.slice(0, iLength - 1); //将空格从字串中去掉  
        //这一句也可改成 str = str.substring(0, iLength - 1);  
        str = rTrim(str);    //递归调用  
    }
    return str;
}
//trim()去掉字串两边的空格  
function trim(str) {
    return lTrim(rTrim(str));
}
////或
//function trim(string)
//{
//    return string.replace(/(^\s*)|(\s*$)/g, "");
//}

//根据ID返回对象
function GetHtmlObject(id) {
    return document.getElementById(id);
}


//根据ID返回父级窗口的对象
function GetParentWinHtmlObject(id) {
    return window.parent.document.getElementById(id);
}

//返回radiobuttonlist的选中值
function GetRBLCheckValue(rblName) {
    var checkValue = 0;
    var object = document.getElementsByName(rblName);
    for (var i = 0; i < object.length; i++) {
        if (object[i].checked) {
            checkValue = object[i].value;
            break;
        }
    }
    return checkValue;
}

//检查CheckBoxlist是否有选中的值
function CheckCBLSelect(cblName) {
    var returnValue = false;
    for (var i = 0; i < GetHtmlObject(cblName).getElementsByTagName("input").length; i++) {
        if (document.getElementById(cblName + "_" + i).checked == true) {
            returnValue = true;
            break;
        }
    }
    return returnValue;
}


//清空指定对象的值
function ClearObjectInfo(objectID, objectName) {
    objectID.value = "";
    objectName.value = "";
    return false;
}

//比较日期大小
function compareDate(DateOne, DateTwo) {
    var OneMonth = DateOne.substring(5, DateOne.lastIndexOf("-"));
    var OneDay = DateOne.substring(DateOne.length, DateOne.lastIndexOf("-") + 1);
    var OneYear = DateOne.substring(0, DateOne.indexOf("-"));

    var TwoMonth = DateTwo.substring(5, DateTwo.lastIndexOf("-"));
    var TwoDay = DateTwo.substring(DateTwo.length, DateTwo.lastIndexOf("-") + 1);
    var TwoYear = DateTwo.substring(0, DateTwo.indexOf("-"));

    if (Date.parse(OneMonth + "/" + OneDay + "/" + OneYear) >
Date.parse(TwoMonth + "/" + TwoDay + "/" + TwoYear)) {
        return true;
    }
    else {
        return false;
    }

}


//这个可以验证15位和18位的身份证，并且包含生日和校验位的验证。   
//如果有兴趣，还可以加上身份证所在地的验证，就是前6位有些数字合法有些数字不合法。 

function isIdCardNo(num) {
    num = num.toUpperCase();
    //身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X。   
    if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
        alert('输入的身份证号长度不对，或者号码不符合规定！\n15位号码应全为数字，18位号码末位可以为数字或X。');
        return false;
    }
    //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
    //下面分别分析出生日期和校验位 
    var len, re;
    len = num.length;
    if (len == 15) {
        re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
        var arrSplit = num.match(re);

        //检查生日日期是否正确 
        var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
        var bGoodDay;
        bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {
            alert('输入的身份证号里出生日期不对！');
            return false;
        }
        else {
            //将15位身份证转成18位 
            //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
            var nTemp = 0, i;
            num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
            for (i = 0; i < 17; i++) {
                nTemp += num.substr(i, 1) * arrInt[i];
            }
            num += arrCh[nTemp % 11];
            return num;
        }
    }
    if (len == 18) {
        re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
        var arrSplit = num.match(re);

        //检查生日日期是否正确 
        var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
        var bGoodDay;
        bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {
            //alert(dtmBirth.getYear()); 
            //alert(arrSplit[2]); 
            alert('输入的身份证号里出生日期不对！');
            return false;
        }
        else {
            //检验18位身份证的校验码是否正确。 
            //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
            //            var valnum; 
            //            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
            //            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
            //            var nTemp = 0, i; 
            //            for(i = 0; i < 17; i ++) 
            //            { 
            //                nTemp += num.substr(i, 1) * arrInt[i]; 
            //            } 
            //            valnum = arrCh[nTemp % 11]; 
            //            if (valnum != num.substr(17, 1)) 
            //            { 
            //                alert('18位身份证的校验码不正确！应该为：' + valnum); 
            //                return false; 
            //            } 
            return num;
        }
    }
    return false;
}   



