function checkDate(dateObject) { var anzTage= new initArray(31,29,31,30,31,30,31,31,30,31,30,31); var errorMsg = ""; var str = dateObject.value; if (str != "") { if (!dateRegExp.test(str)) errorMsg = expectedFormatIs; else { var jahr= parseInt(str.substring(dateYearIndex,dateYearIndex+4)); if (errorMsg == "") { if (jahr<1970) errorMsg = invalidFormatYear1970; if (jahr>2099) errorMsg = invalidFormatYear2100; } var monat = parseInt(str.substring(dateMonthIndex,dateMonthIndex+2),10); if (errorMsg == "") { if (monat<1 || monat>12) errorMsg = invalidFormatMonth; } var tag= parseInt(str.substring(dateDayIndex,dateDayIndex+2),10); if (errorMsg == "") { if (tag<1) errorMsg = invalidFormatDay; else { if (tag>anzTage[monat]) errorMsg = invalidFormatDay; if ((tag==29) && (monat==2) && (jahr%4>0)) errorMsg = noLeapYear; } } } } if (errorMsg != "") { alert(errorMsg); dateObject.focus(); return false; } return true; } function checkDateMandatory(dateObject) { if (dateObject.value == "") { alert(expectedFormatIs); dateObject.focus(); return false; } else return checkDate(dateObject); } /************************************************ *正数值检查(小数可) *@param number 输入文字(数值) * keta1 位数(整数部分) * keta2 位数(小数部分) *@return 0:正常 * 1:混有数值以为字符 * 2:位数超出 ************************************************/ function chkNumber(number,keta1,keta2){ //null或空文字的时候,正常返回 if(number == null || number.length == 0){ return 0; } //数值或小数点以外文字输入的时候,错误返回 var p_txt = "0123456789."; for (var i = 0; i < number.length; i++) { var c = number.charAt(i); var n = p_txt.indexOf(c, 0); if (n < 0) { return 1; } } //数值以外的文字有的时候,错误返回 if (isNaN(number)) { return 1; } //最开始或最末尾有小数点的时候,错误返回 if(number.indexOf("-") == 0){ if( ( number.indexOf(".") == 0 ) || ( number.indexOf(".") == 1 ) || ( getLength(number) - 1 == number.indexOf(".") ) ) { return 1; } } else { if( ( number.indexOf(".") == 0 ) || ( getLength(number) - 1 == number.indexOf(".") ) ) { return 1; } } //整数部分为0的时候 if (keta1!=0){ //小数部分的位数判断 if( number.indexOf(".") >= 0){ if(number.indexOf("-") == 0){ if(number.indexOf(".") - 1 > keta1){ return 2; } } else { if(number.indexOf(".") > keta1){ return 2; } } if(getLength(number) - number.indexOf(".") - 1 > keta2){ return 2; } } else { //小数点不存在的时候 if(getLength(number) > keta1){ return 2; } } } return 0; } /************************************************ *正确年月日的检查(10位)YYYY-MM-DD * @param moji 输入时间字符串 * @return true:正常 * false:异常 ************************************************/ function chkYmd10(moji){ //null或空文字的时候,正常返回 if(moji == null || moji.length == 0){ return true; } //不等于10位的时候,异常返回 if (getLength(moji)!=10) { return false; } newdate = new Date(moji.substr(0,4),moji.substr(5,2)-1,moji.substr(8,2)); if ((newdate.getDate() != moji.substr(8,2))||(moji.substr(5,2) != newdate.getMonth()+1)) { return false; } return true; } /************************************************ *两个年月日范围的检查(10位)YYYY-MM-DD * @param strStartValue 输入开始时间字符串 * @param strEndValue 输入结束时间字符串 * @return true:正常范围 * false:异常范围 ************************************************/ function fnc_chkfromto(strStartValue, strEndValue) { if (strStartValue==null||strStartValue=="") return true; if (strStartValue >= strEndValue) { return true; } else { return false; } } /************************************************ * 入力文字のレングス(Byte長)を求める * @param moji 入力文字 * @return 入力文字のレングス(Byte長) ************************************************/ /************************************************ *文字长度的检查 * @param moji 输入字符串 * @return r:返回长度 * ************************************************/ function getLength(moji){ var r = 0; if ("あ".length == 1) { for (var i = 0; i < moji.length; i++) { var c = moji.charCodeAt(i); if ((c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { r += 1; } else { r += 2; } } } else { r = moji.legth; } return r; } /************************* * * 输入校验,只允许输入数字和大小写字母 * ***************************/ function fnc_chkNumAlpha(str){ var cnst = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; if (str == null || str.length == 0) { return true; } for(i = 0; i < str.length; i++ ){ if(cnst.indexOf(str.charAt(i)) == -1 ){ return false; } } return true; }