You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by mr...@apache.org on 2005/08/24 05:48:04 UTC
svn commit: r239517 -
/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js
Author: mrdon
Date: Tue Aug 23 20:48:03 2005
New Revision: 239517
URL: http://svn.apache.org/viewcvs?rev=239517&view=rev
Log:
Added support for datePattern on date validator
PR: 22384
Modified:
jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js
Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js?rev=239517&r1=239516&r2=239517&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js Tue Aug 23 20:48:03 2005
@@ -17,10 +17,13 @@
for (x in oDate) {
var field = form[oDate[x][0]];
var value = field.value;
+ var isStrict = true;
var datePattern = oDate[x][2]("datePatternStrict");
// try loose pattern
- if (datePattern == null)
+ if (datePattern == null) {
datePattern = oDate[x][2]("datePattern");
+ isStrict = false;
+ }
if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea') &&
@@ -38,13 +41,21 @@
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})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{2})(\\d{2})(\\d{4})$")
+ : new RegExp("^(\\d{1,2})(\\d{1,2})(\\d{4})$");
} else if (iDelim1 == orderDay) {
- dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$")
+ : new RegExp("^(\\d{1,2})(\\d{1,2})[" + delim2 + "](\\d{4})$");
} else if (iDelim2 == orderYear) {
- dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$")
+ : new RegExp("^(\\d{1,2})[" + delim1 + "](\\d{1,2})(\\d{4})$");
} else {
- dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$")
+ : new RegExp("^(\\d{1,2})[" + delim1 + "](\\d{1,2})[" + delim2 + "](\\d{4})$");
}
var matched = dateRegexp.exec(value);
if(matched != null) {
@@ -68,19 +79,27 @@
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})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{2})(\\d{2})(\\d{4})$")
+ : new RegExp("^(\\d{1,2})(\\d{1,2})(\\d{4})$");
} else if (iDelim1 == orderMonth) {
- dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$")
+ : new RegExp("^(\\d{1,2})(\\d{1,2})[" + delim2 + "](\\d{4})$");
} else if (iDelim2 == orderYear) {
- dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$")
+ : new RegExp("^(\\d{1,2})[" + delim1 + "](\\d{1,2})(\\d{4})$");
} else {
- dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$")
+ : new RegExp("^(\\d{1,2})[" + delim1 + "](\\d{1,2})[" + delim2 + "](\\d{4})$");
}
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[1], matched[2], matched[3])) {
if (i == 0) {
- focusField = field;
+ focusField = field;
}
fields[i++] = oDate[x][1];
bValid = false;
@@ -98,13 +117,21 @@
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})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{4})(\\d{2})(\\d{2})$")
+ : new RegExp("^(\\d{4})(\\d{1,2})(\\d{1,2})$");
} else if (iDelim1 == orderMonth) {
- dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$")
+ : new RegExp("^(\\d{4})(\\d{1,2})[" + delim2 + "](\\d{1,2})$");
} else if (iDelim2 == orderDay) {
- dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$")
+ : new RegExp("^(\\d{4})[" + delim1 + "](\\d{1,2})(\\d{1,2})$");
} else {
- dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
+ dateRegexp = isStrict
+ ? new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$")
+ : new RegExp("^(\\d{4})[" + delim1 + "](\\d{1,2})[" + delim2 + "](\\d{1,2})$");
}
var matched = dateRegexp.exec(value);
if(matched != null) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org