0,0 → 1,988 |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<!-- |
|
This file contains the default Struts Validator pluggable validator |
definitions. It should be placed somewhere under /WEB-INF and |
referenced in the struts-config.xml under the plug-in element |
for the ValidatorPlugIn. |
|
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> |
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml, |
/WEB-INF/validation.xml"/> |
</plug-in> |
|
These are the default error messages associated with |
each validator defined in this file. They should be |
added to your projects ApplicationResources.properties |
file or you can associate new ones by modifying the |
pluggable validators msg attributes in this file. |
|
# Struts Validator Error Messages |
errors.required={0} is required. |
errors.minlength={0} can not be less than {1} characters. |
errors.maxlength={0} can not be greater than {1} characters. |
errors.invalid={0} is invalid. |
|
errors.byte={0} must be a byte. |
errors.short={0} must be a short. |
errors.integer={0} must be an integer. |
errors.long={0} must be a long. |
errors.float={0} must be a float. |
errors.double={0} must be a double. |
|
errors.date={0} is not a date. |
errors.range={0} is not in the range {1} through {2}. |
errors.creditcard={0} is an invalid credit card number. |
errors.email={0} is an invalid e-mail address. |
|
--> |
|
<form-validation> |
|
<global> |
|
<validator name="required" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequired" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
|
<javascript><![CDATA[ |
function validateRequired(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRequired = new required(); |
for (x in oRequired) { |
var field = form[oRequired[x][0]]; |
|
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'file' || |
field.type == 'select-one' || |
field.type == 'radio' || |
field.type == 'password') { |
|
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
|
if (value == '') { |
|
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oRequired[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
|
</validator> |
|
<validator name="requiredif" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequiredIf" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
org.apache.commons.validator.Validator, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
</validator> |
|
<validator name="minlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMinLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.minlength"> |
|
<javascript><![CDATA[ |
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; |
}]]> |
</javascript> |
|
</validator> |
|
|
<validator name="maxlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMaxLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.maxlength"> |
|
<javascript><![CDATA[ |
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; |
}]]> |
</javascript> |
|
</validator> |
|
|
<validator name="mask" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMask" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.invalid"> |
|
<javascript><![CDATA[ |
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; |
}]]> |
</javascript> |
|
</validator> |
|
|
<validator name="byte" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateByte" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.byte" |
jsFunctionName="ByteValidations"> |
|
<javascript><![CDATA[ |
function validateByte(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oByte = new ByteValidations(); |
for (x in oByte) { |
var field = form[oByte[x][0]]; |
|
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
|
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
|
if (value.length > 0) { |
|
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oByte[x][1]; |
bValid = false; |
} |
} |
|
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
|
</validator> |
|
|
<validator name="short" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateShort" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.short" |
jsFunctionName="ShortValidations"> |
|
<javascript><![CDATA[ |
function validateShort(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oShort = new ShortValidations(); |
for (x in oShort) { |
var field = form[oShort[x][0]]; |
|
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
|
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
|
if (value.length > 0) { |
|
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oShort[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
|
</validator> |
|
|
<validator name="integer" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateInteger" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.integer" |
jsFunctionName="IntegerValidations"> |
|
<javascript><![CDATA[ |
function validateInteger(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oInteger = new IntegerValidations(); |
for (x in oInteger) { |
var field = form[oInteger[x][0]]; |
|
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
|
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
|
if (value.length > 0) { |
|
if (!isAllDigits(value)) { |
bValid = false; |
} else { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oInteger[x][1]; |
bValid = false; |
} |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
|
function isAllDigits(argvalue) { |
argvalue = argvalue.toString(); |
var validChars = "0123456789"; |
var startFrom = 0; |
if (argvalue.substring(0, 2) == "0x") { |
validChars = "0123456789abcdefABCDEF"; |
startFrom = 2; |
} else if (argvalue.charAt(0) == "0") { |
validChars = "01234567"; |
startFrom = 1; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; |
} |
return true; |
}]]> |
</javascript> |
|
</validator> |
|
|
<validator name="long" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateLong" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.long"/> |
|
|
<validator name="float" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloat" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.float" |
jsFunctionName="FloatValidations"> |
|
<javascript><![CDATA[ |
function validateFloat(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oFloat = new FloatValidations(); |
for (x in oFloat) { |
var field = form[oFloat[x][0]]; |
|
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
|
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
|
if (value.length > 0) { |
|
var iValue = parseFloat(value); |
if (isNaN(iValue)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oFloat[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
|
</validator> |
|
|
<validator name="double" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDouble" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.double"/> |
|
|
<validator name="date" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDate" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.date" |
jsFunctionName="DateValidations"> |
|
<javascript><![CDATA[ |
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; |
}]]> |
</javascript> |
|
</validator> |
|
<!-- range is deprecated use intRange instead --> |
<validator name="range" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
|
<javascript><![CDATA[ |
function validateRange(form) { |
return validateIntRange(form); |
}]]> |
</javascript> |
|
</validator> |
|
<validator name="intRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
|
<javascript><![CDATA[ |
function validateIntRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new intRange(); |
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; |
}]]> |
</javascript> |
|
</validator> |
|
<validator name="floatRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloatRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="float" |
msg="errors.range"> |
|
<javascript><![CDATA[ |
function validateFloatRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new floatRange(); |
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 fMin = parseFloat(oRange[x][2]("min")); |
var fMax = parseFloat(oRange[x][2]("max")); |
var fValue = parseFloat(form[oRange[x][0]].value); |
if (!(fValue >= fMin && fValue <= fMax)) { |
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; |
}]]> |
</javascript> |
|
</validator> |
|
<validator name="creditCard" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateCreditCard" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.creditcard"> |
|
<javascript><![CDATA[ |
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; |
}]]> |
</javascript> |
|
</validator> |
|
|
<validator name="email" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateEmail" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.email"> |
|
<javascript><![CDATA[ |
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; |
}]]> |
</javascript> |
|
</validator> |
|
</global> |
|
</form-validation> |