aboutsummaryrefslogtreecommitdiffstats
path: root/src/Validators.js
diff options
context:
space:
mode:
authorMisko Hevery2010-01-11 16:15:12 -0800
committerMisko Hevery2010-01-11 16:15:12 -0800
commit1a42a3fab99ca02af0476f5a87175c53104aa2e3 (patch)
treedef5eb17d459d8d3ace81fece12a087d0651c2bc /src/Validators.js
parent1aba6b53b88c70b61a0cc991b1371739305d117b (diff)
downloadangular.js-1a42a3fab99ca02af0476f5a87175c53104aa2e3.tar.bz2
green
Diffstat (limited to 'src/Validators.js')
-rw-r--r--src/Validators.js152
1 files changed, 77 insertions, 75 deletions
diff --git a/src/Validators.js b/src/Validators.js
index 7cfaa2b4..eb8cff59 100644
--- a/src/Validators.js
+++ b/src/Validators.js
@@ -1,80 +1,82 @@
// Copyright (C) 2009 BRAT Tech LLC
-angular.validator.regexp = function(value, regexp, msg) {
- if (!value.match(regexp)) {
- return msg ||
- "Value does not match expected format " + regexp + ".";
- } else {
- return null;
- }
-};
-
-angular.validator.number = function(value, min, max) {
- var num = 1 * value;
- if (num == value) {
- if (typeof min != 'undefined' && num < min) {
- return "Value can not be less than " + min + ".";
+foreach({
+ 'regexp': function(value, regexp, msg) {
+ if (!value.match(regexp)) {
+ return msg ||
+ "Value does not match expected format " + regexp + ".";
+ } else {
+ return null;
}
- if (typeof min != 'undefined' && num > max) {
- return "Value can not be greater than " + max + ".";
+ },
+
+ 'number': function(value, min, max) {
+ var num = 1 * value;
+ if (num == value) {
+ if (typeof min != 'undefined' && num < min) {
+ return "Value can not be less than " + min + ".";
+ }
+ if (typeof min != 'undefined' && num > max) {
+ return "Value can not be greater than " + max + ".";
+ }
+ return null;
+ } else {
+ return "Value is not a number.";
+ }
+ },
+
+ 'integer': function(value, min, max) {
+ var number = angularValidator['number'](value, min, max);
+ if (number === null && value != Math.round(value)) {
+ return "Value is not a whole number.";
+ }
+ return number;
+ },
+
+ 'date': function(value, min, max) {
+ if (value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/)) {
+ return null;
+ }
+ return "Value is not a date. (Expecting format: 12/31/2009).";
+ },
+
+ 'ssn': function(value) {
+ if (value.match(/^\d\d\d-\d\d-\d\d\d\d$/)) {
+ return null;
+ }
+ return "SSN needs to be in 999-99-9999 format.";
+ },
+
+ 'email': function(value) {
+ if (value.match(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/)) {
+ return null;
+ }
+ return "Email needs to be in username@host.com format.";
+ },
+
+ 'phone': function(value) {
+ if (value.match(/^1\(\d\d\d\)\d\d\d-\d\d\d\d$/)) {
+ return null;
+ }
+ if (value.match(/^\+\d{2,3} (\(\d{1,5}\))?[\d ]+\d$/)) {
+ return null;
+ }
+ return "Phone number needs to be in 1(987)654-3210 format in North America or +999 (123) 45678 906 internationaly.";
+ },
+
+ 'url': function(value) {
+ if (value.match(/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/)) {
+ return null;
+ }
+ return "URL needs to be in http://server[:port]/path format.";
+ },
+
+ 'json': function(value) {
+ try {
+ fromJson(value);
+ return null;
+ } catch (e) {
+ return e.toString();
}
- return null;
- } else {
- return "Value is not a number.";
- }
-};
-
-angular.validator.integer = function(value, min, max) {
- var number = angular.validator.number(value, min, max);
- if (number === null && value != Math.round(value)) {
- return "Value is not a whole number.";
- }
- return number;
-};
-
-angular.validator.date = function(value, min, max) {
- if (value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/)) {
- return null;
- }
- return "Value is not a date. (Expecting format: 12/31/2009).";
-};
-
-angular.validator.ssn = function(value) {
- if (value.match(/^\d\d\d-\d\d-\d\d\d\d$/)) {
- return null;
- }
- return "SSN needs to be in 999-99-9999 format.";
-};
-
-angular.validator.email = function(value) {
- if (value.match(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/)) {
- return null;
- }
- return "Email needs to be in username@host.com format.";
-};
-
-angular.validator.phone = function(value) {
- if (value.match(/^1\(\d\d\d\)\d\d\d-\d\d\d\d$/)) {
- return null;
- }
- if (value.match(/^\+\d{2,3} (\(\d{1,5}\))?[\d ]+\d$/)) {
- return null;
- }
- return "Phone number needs to be in 1(987)654-3210 format in North America or +999 (123) 45678 906 internationaly.";
-};
-
-angular.validator.url = function(value) {
- if (value.match(/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/)) {
- return null;
- }
- return "URL needs to be in http://server[:port]/path format.";
-};
-
-angular.validator.json = function(value) {
- try {
- fromJson(value);
- return null;
- } catch (e) {
- return e.toString();
}
-};
+}, function(v,k) {angularValidator[k] = v;});