var ERRMSG_DATA_CANT_BE_EMPTY = "\x20cannot be empty"; var ERRMSG_EMAIL_FORMAT_ERROR = "\x20format error"; var ERRMSG_DATE_FORMAT_ERROR = "\x20format error"; var ERRMSG_DATE_FORMAT_ISNT_DIGIT_ERROR = "\x20is not digit"; var ERRMSG_YEAR_ERROR = "\x20year error"; var ERRMSG_MONTH_ERROR = "\x20month error"; var ERRMSG_DATE_ERROR = "\x20date error"; var ERRMSG_TIME_FORMAT_ERROR = "\x20format error"; var ERRMSG_TIME_FORMAT_ISNT_DIGIT_ERROR = "\x20is not digit"; var ERRMSG_HOUR_ERROR = "\x20hour error"; var ERRMSG_MINUTE_ERROR = "\x20minute error"; var ERRMSG_SECOND_ERROR = "\x20second error"; var ERRMSG_DATETIME_FORMAT_ERROR = "\x20format error"; var ERRMSG_QUANTITY_FORMAT_ERROR = "\x20format error"; var ERRMSG_AMOUNT_FORMAT_ISNT_DIGIT_ERROR = "\x20is not digit"; var ERRMSG_AMOUNT_CANT_BE_NEGATIVE_ERROR = "\x20 cannot be negative"; var ERRMSG_QUANTITY_FORMAT_ISNT_DIGIT_ERROR = "\x20is not digit"; var ERRMSG_QUANTITY_CANT_BE_NEGATIVE_ERROR = "\x20 cannot be negative"; var ERRMSG_QUANTITY_CANT_BE_FLOAT_ERROR = "\x20 cannot be float"; /** * Check Email Format * emailObj: email html Object * fieldName: email field name * return: true for email format is right */ function checkEmail(emailObj, fieldName) { var email = trim(emailObj.value); if (checkEmpty(email)) return showError(emailObj, fieldName + ERRMSG_DATA_CANT_BE_EMPTY); reg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; if ('' == email || !email.match(reg)) { return showError(emailObj, fieldName + ERRMSG_EMAIL_FORMAT_ERROR); } return true; } /** * Check Date, Date Format is yyyy-mm-dd * dateObj: date html object * fieldName: date field name * return: ture for date format is rigth */ function checkDate(dateObj, fieldName) { return chkDate(trim(dateObj.value), fieldName, dateObj); } /** * Check Time, time format is hh:mm:ss * timeObj: time html object * fieldName: time field name * return: true for time format is right */ function checkTime(timeObj, fieldName) { return chkTime(trim(timeObj.value), fieldName, timeObj); } /** * Check DateTime, datetime format is yyyy-mm-dd hh:mm:dd * datetimeObj: datetime html object * fieldName: datetime field name * return: true for datetime format is right */ function checkDatetime(datetimeObj, fieldName) { var SPLIT = " "; var datetime = trim(datetimeObj.value); if (checkEmpty(datetime)) return showError(datetimeObj, fieldName + ERRMSG_DATA_CANT_BE_EMPTY); if (datetime.length != 19 || datetime.charAt(10) != SPLIT) return showError(datetimeObj, fieldName + ERRMSG_DATETIME_FORMAT_ERROR); if (!chkDate(datetime.substr(0, 10), fieldName, datetimeObj)) return false; if (!chkTime(datetime.substr(11, 8), fieldName, datetimeObj)) return false; return true; } /** * Check Amount, check amount format * amountObj: amount html object * fieldName: amount field name * return: amount format is right */ function checkAmount(amountObj, fieldName) { var num = trim(amountObj.value); if (checkEmpty(num)) return showError(amountObj, fieldName + ERRMSG_DATA_CANT_BE_EMPTY); if (isNaN(num)) return showError(amountObj, fieldName + ERRMSG_AMOUNT_FORMAT_ISNT_DIGIT_ERROR); if (parseInt(num) < 0) return showError(amountObj, fieldName + ERRMSG_AMOUNT_CANT_BE_NEGATIVE_ERROR); return true; } /** * Check quantity, check quantity format * quantityObj: quantity html object * fieldName: quantity field name * return: quantity format is right */ function checkQuantity(quantityObj, fieldName) { var num = trim(quantityObj.value); if (checkEmpty(num)) return showError(quantityObj, fieldName + ERRMSG_DATA_CANT_BE_EMPTY); if (isNaN(num)) return showError(quantityObj, fieldName + ERRMSG_QUANTITY_FORMAT_ISNT_DIGIT_ERROR); if (parseInt(num) < 0) return showError(quantityObj, fieldName + ERRMSG_QUANTITY_CANT_BE_NEGATIVE_ERROR); if (isFloat(num)) return showError(quantityObj, fieldName + ERRMSG_QUANTITY_CANT_BE_FLOAT_ERROR); return true; } function ReplaceAll(stringObj,strFind,strReplace){ var index = 0; var strOrg = trim(stringObj.value); while(strOrg.indexOf(strFind,index) != -1){ strOrg = strOrg.replace(strFind,strReplace); index = strOrg.indexOf(strFind,index); } //stringObj.focus(); return strOrg; } /** * Check isPosInteger, check isPosInteger format * quantityObj: quantity html object * fieldName: quantity field name * return: quantity format is right */ function isPosInteger(inputObj,quantityObj) { var inputVal = trim(inputObj.value); var oneChar inputStr=inputVal.toString() for (var i=0;i"9") { quantityObj.focus(); return false } } return true } /** * Check CheckBox is checked * form: form html object * value: checkbox value * return: true for checkbox is checked */ function checkChecked(form, value) { for (var i=0; i< form.length; i++) if (form.elements[i].type == 'checkbox' && form.elements[i].value == value) return form.elements[i].checked; } /** * Check CheckBox is checked * form: form html object * name: name value * value: checkbox value * return: true for checkbox is checked */ function checkChecked(form, name, value) { for (var i=0; i< form.length; i++) if (form.elements[i].type == 'checkbox' && form.elements[i].name == name && form.elements[i].value == value) return form.elements[i].checked; } /** * Check Specify CheckBox is checked * form: form html object * name: name value * return: true for any checkbox is checked */ function checkAnyChecked(form, name) { var flag = false; for (var i=0; i< form.length; i++) if (form.elements[i].type == 'checkbox' && form.elements[i].name == name) flag = flag || form.elements[i].checked; return flag; } /** * Check data after trimed is empty * value: data * return: true for data is empty */ function checkEmpty(value) { return trim(value).length == 0; } /** * trim space, tab, carrage return in data * str: data * return data without space, tab, carrage return in left and right or data */ function trim(data) { return rTrim(lTrim(data)); } /**************************** private function ********************************/ function showError(obj, msg) { alert(msg); obj.focus(); return false; } function subStr(str, pos) { if ('0'==str.substr(pos, 1)) { return str.substr(pos + 1, 1); } else { return str.substr(pos, 2); } } function chkDate(date, fieldName, obj) { var SPLIT = '-'; if (checkEmpty(date)) return showError(obj, fieldName + ERRMSG_DATA_CANT_BE_EMPTY); if (date.length != 10 || SPLIT != date.substr(4, 1) || SPLIT != date.substr(7, 1)) return showError(obj, fieldName + ERRMSG_DATE_FORMAT_ERROR); var tmpDate = date.substr(0, 4) + date.substr(5, 2) + date.substr(8, 2); if (isNaN(tmpDate)) return showError(obj, fieldName + ERRMSG_DATE_FORMAT_ISNT_DIGIT_ERROR); var monthday = new Array(29,31,28,31,30,31,30,31,31,30,31,30,31); var cy = parseInt(tmpDate.substr(0, 4)); var cm = parseInt(subStr(tmpDate, 4)); var cd = parseInt(subStr(tmpDate, 6)); if (12 < cm || 1 > cm) { return showError(obj, fieldName + ERRMSG_MONTH_ERROR); } else { if (2==cm && ((0==cy%4 && 0!=cy%100) || 0==cy%400)) { if (cd > monthday[0]) { return showError(obj, fieldName + ERRMSG_DATE_ERROR); } } else { if (cd > monthday[cm] || cd < 0) { return showError(obj, fieldName + ERRMSG_DATE_ERROR); } } } if (cy == '0000') { return showError(obj, fieldName + ERRMSG_YEAR_ERROR); } return true; } function chkTime(time, fieldName, obj) { var SPLIT = ":"; if (checkEmpty(time)) return showError(obj, fieldName + ERRMSG_DATA_CANT_BE_EMPTY); if (8 != time.length || SPLIT != time.substr(2,1) || SPLIT != time.substr(5,1)) return showError(obj, fieldName + ERRMSG_TIME_FORMAT_ERROR); var tmpTime = time.substr(0,2) + time.substr(3,2) + time.substr(6,2); if (isNaN(tmpTime)) return showError(obj, fieldName + ERRMSG_TIME_FORMAT_ISNT_DIGIT_ERROR); var ch = parseInt(subStr(time, 0)); var cm = parseInt(subStr(time, 3)); var cs = parseInt(subStr(time, 6)); if (23 < ch || 0 > ch) return showError(obj, fieldName + ERRMSG_HOUR_ERROR); if (59 < cm || 0 > cm) return showError(obj, fieldName + ERRMSG_MINUTE_ERROR); if (59 < cs || 0 > cs) return showError(obj, fieldName + ERRMSG_SECOND_ERROR); return true; } function isFloat(num) { return num.indexOf(".") > 0; } 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; }