⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 validate.js

📁 经典的“固定资产管理系统”JSP源代码
💻 JS
字号:
function validateRequired(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oRequired = new required();
	for (x in oRequired) {
		if ((form[oRequired[x][0]].type == 'text' || form[oRequired[x][0]].type == 'textarea' || form[oRequired[x][0]].type == 'select-one' || form[oRequired[x][0]].type == 'radio' || form[oRequired[x][0]].type == 'password') && form[oRequired[x][0]].value == '') {
			if (i == 0)
			focusField = form[oRequired[x][0]];
			fields[i++] = oRequired[x][1];
			bValid = false;
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}
function validateDate(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oDate = new DateValidations();

	for (x in oDate) {
		var value = form[oDate[x][0]].value;
		var datePattern = oDate[x][2]("datePatternStrict");

		if ((form[oDate[x][0]].type == 'text' || form[oDate[x][0]].type == 'textarea') && value.length > 0 && datePattern.length > 0) {
			var MONTH = "MM";
			var DAY = "dd";
			var YEAR = "yyyy";

			var orderMonth = datePattern.indexOf(MONTH);
			var orderDay = datePattern.indexOf(DAY);
			var orderYear = datePattern.indexOf(YEAR);

			if ((orderDay < orderYear && orderDay > orderMonth)) {
				var iDelim1 = orderMonth + MONTH.length;
				var iDelim2 = orderDay + DAY.length;
				var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
				var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);

				if (iDelim1 == orderDay && iDelim2 == orderYear) {
					dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
				} else if (iDelim1 == orderDay) {
					dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
				} else if (iDelim2 == orderYear) {
					dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
				} else {
					dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
				}

				var matched = dateRegexp.exec(value);

				if(matched != null) {
					if (!isValidDate(matched[2], matched[1], matched[3])) {
						if (i == 0)
						focusField = form[oDate[x][0]];

						fields[i++] = oDate[x][1];
						bValid =  false;
					}
				} else {
					if (i == 0)
					focusField = form[oDate[x][0]];

					fields[i++] = oDate[x][1];
					bValid =  false;
				}
			} else if ((orderMonth < orderYear && orderMonth > orderDay)) {
				var iDelim1 = orderDay + DAY.length;
				var iDelim2 = orderMonth + MONTH.length;
				var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
				var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);

				if (iDelim1 == orderMonth && iDelim2 == orderYear) {
					dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
				} else if (iDelim1 == orderMonth) {
					dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
				} else if (iDelim2 == orderYear) {
					dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
				} else {
					dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
				}

				var matched = dateRegexp.exec(value);

				if(matched != null) {
					if (!isValidDate(matched[1], matched[2], matched[3])) {
						if (i == 0)
						focusField = form[oDate[x][0]];

						fields[i++] = oDate[x][1];
						bValid =  false;
					}
				} else {
					if (i == 0)
					focusField = form[oDate[x][0]];

					fields[i++] = oDate[x][1];
					bValid =  false;
				}
			} else if ((orderMonth > orderYear && orderMonth < orderDay)) {
				var iDelim1 = orderYear + YEAR.length;
				var iDelim2 = orderMonth + MONTH.length;
				var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
				var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);

				if (iDelim1 == orderMonth && iDelim2 == orderDay) {
					dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
				} else if (iDelim1 == orderMonth) {
					dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
				} else if (iDelim2 == orderDay) {
					dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
				} else {
					dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
				}

				var matched = dateRegexp.exec(value);

				if(matched != null) {

					if (!isValidDate(matched[3], matched[2], matched[1])) {
						if (i == 0)
						focusField = form[oDate[x][0]];

						fields[i++] = oDate[x][1];
						bValid =  false;
					}
				} else {
					if (i == 0)
					focusField = form[oDate[x][0]];

					fields[i++] = oDate[x][1];
					bValid =  false;
				}
			} else {
				if (i == 0)
				focusField = form[oDate[x][0]];

				fields[i++] = oDate[x][1];
				bValid =  false;
			}

		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}

function isValidDate(day, month, year) {
	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 leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day == 29 && !leap))
		return false;
	}

	return true;
}
function validateInteger(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oInteger = new IntegerValidations();

	for (x in oInteger) {
		if ((form[oInteger[x][0]].type == 'text' || form[oInteger[x][0]].type == 'textarea' || form[oInteger[x][0]].type == 'select-one' || form[oInteger[x][0]].type == 'radio') && form[oInteger[x][0]].value.length > 0) {
			var iValue = parseInt(form[oInteger[x][0]].value);

			if (!iValue || !(iValue >= -2147483648 && iValue <= 2147483647)) {
				if (i == 0)
				focusField = form[oInteger[x][0]];

				fields[i++] = oInteger[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}
function validateRange(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oRange = new range();

	for (x in oRange) {
		if ((form[oRange[x][0]].type == 'text' || form[oRange[x][0]].type == 'textarea') && form[oRange[x][0]].value.length > 0) {
			var iMin = parseInt(oRange[x][2]("min"));
			var iMax = parseInt(oRange[x][2]("max"));
			var iValue = parseInt(form[oRange[x][0]].value);

			if (!(iValue >= iMin && iValue <= iMax)) {
				if (i == 0)
				focusField = form[oRange[x][0]];

				fields[i++] = oRange[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}
function validateEmail(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oEmail = new email();

	for (x in oEmail) {
		if ((form[oEmail[x][0]].type == 'text' || form[oEmail[x][0]].type == 'textarea') && form[oEmail[x][0]].value.length > 0) {
			if (!checkEmail(form[oEmail[x][0]].value)) {
				if (i == 0)
				focusField = form[oEmail[x][0]];

				fields[i++] = oEmail[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}

/**
* Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
* http://javascript.internet.com
*/
function checkEmail(emailStr) {
	if (emailStr.length == 0)
	return true;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray == null)
	return false;

	var user=matchArray[1];
	var domain=matchArray[2];

	if (user.match(userPat) == null)
	return false;

	var IPArray = domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i = 1; i <= 4; i++) {
			if (IPArray[i] > 255)
			return false;
		}

		return true;
	}

	var domainArray=domain.match(domainPat);
	if (domainArray == null)
	return false;

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;

	if (domArr[domArr.length-1].length < 2 || domArr[domArr.length-1].length > 3)
	return false;

	if (len < 2)
	return false;

	return true;
}
function validateFloat(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oFloat = new FloatValidations();

	for (x in oFloat) {
		if ((form[oFloat[x][0]].type == 'text' || form[oFloat[x][0]].type == 'textarea' || form[oFloat[x][0]].type == 'select-one' || form[oFloat[x][0]].type == 'radio') && form[oFloat[x][0]].value.length > 0) {
			var iValue = parseFloat(form[oFloat[x][0]].value);

			if (!iValue) {
				if (i == 0)
				focusField = form[oFloat[x][0]];

				fields[i++] = oFloat[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}
function validateShort(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oShort = new ShortValidations();

	for (x in oShort) {
		if ((form[oShort[x][0]].type == 'text' || form[oShort[x][0]].type == 'textarea' || form[oShort[x][0]].type == 'select-one' || form[oShort[x][0]].type == 'radio') && form[oShort[x][0]].value.length > 0) {
			var iValue = parseInt(form[oShort[x][0]].value);

			if (!iValue || !(iValue >= -32768 && iValue <= 32767)) {
				if (i == 0)
				focusField = form[oShort[x][0]];

				fields[i++] = oShort[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}
function validateMask(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oMasked = new mask();

	for (x in oMasked) {
		if ((form[oMasked[x][0]].type == 'text' || form[oMasked[x][0]].type == 'textarea' || form[oMasked[x][0]].type == 'password') && form[oMasked[x][0]].value.length > 0) {
			if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) {
				if (i == 0)
				focusField = form[oMasked[x][0]];

				fields[i++] = oMasked[x][1];
				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}

function matchPattern(value, mask) {
	var bMatched = mask.exec(value);

	if(!bMatched) {
		return false;
	}

	return true;
}
function validateMaxLength(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oMaxLength = new maxlength();

	for (x in oMaxLength) {
		if (form[oMaxLength[x][0]].type == 'text' || form[oMaxLength[x][0]].type == 'textarea') {
			var iMax = parseInt(oMaxLength[x][2]("maxlength"));

			if (!(form[oMaxLength[x][0]].value.length <= iMax)) {
				if (i == 0)
				focusField = form[oMaxLength[x][0]];

				fields[i++] = oMaxLength[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}
function validateCreditCard(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oCreditCard = new creditCard();

	for (x in oCreditCard) {
		if ((form[oCreditCard[x][0]].type == 'text' || form[oCreditCard[x][0]].type == 'textarea') && form[oCreditCard[x][0]].value.length > 0) {
			if (!luhnCheck(form[oCreditCard[x][0]].value)) {
				if (i == 0)
				focusField = form[oCreditCard[x][0]];

				fields[i++] = oCreditCard[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}

/**
* Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
*/
function luhnCheck(cardNumber) {
	if (isLuhnNum(cardNumber)) {
		var no_digit = cardNumber.length;
		var oddoeven = no_digit & 1;
		var sum = 0;
		for (var count = 0; count < no_digit; count++) {
			var digit = parseInt(cardNumber.charAt(count));
			if (!((count & 1) ^ oddoeven)) {
				digit *= 2;
				if (digit > 9) digit -= 9;
			};
			sum += digit;
		};
		if (sum == 0) return false;
		if (sum % 10 == 0) return true;
	};
	return false;
}

function isLuhnNum(argvalue) {
	argvalue = argvalue.toString();
	if (argvalue.length == 0)
	return false;
	for (var n = 0; n < argvalue.length; n++)
	if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n,n+1) > "9")
	return false;

	return true;
}
function validateByte(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oByte = new ByteValidations();

	for (x in oByte) {
		if ((form[oByte[x][0]].type == 'text' || form[oByte[x][0]].type == 'textarea' || form[oByte[x][0]].type == 'select-one' || form[oByte[x][0]].type == 'radio') && form[oByte[x][0]].value.length > 0) {
			var iValue = parseInt(form[oByte[x][0]].value);

			if (!iValue || !(iValue >= -128 && iValue <= 127)) {
				if (i == 0)
				focusField = form[oByte[x][0]];

				fields[i++] = oByte[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}
function validateMinLength(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oMinLength = new minlength();

	for (x in oMinLength) {
		if (form[oMinLength[x][0]].type == 'text' || form[oMinLength[x][0]].type == 'textarea') {
			var iMin = parseInt(oMinLength[x][2]("minlength"));

			if (!(form[oMinLength[x][0]].value.length >= iMin)) {
				if (i == 0)
				focusField = form[oMinLength[x][0]];

				fields[i++] = oMinLength[x][1];

				bValid = false;
			}
		}
	}

	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}

	return bValid;
}
//  End -->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -