diff options
Diffstat (limited to 'src/Validators.js')
| -rw-r--r-- | src/Validators.js | 80 | 
1 files changed, 80 insertions, 0 deletions
| diff --git a/src/Validators.js b/src/Validators.js new file mode 100644 index 00000000..94cb1d52 --- /dev/null +++ b/src/Validators.js @@ -0,0 +1,80 @@ +// 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 + "."; +    } +    if (typeof min != 'undefined' && num > max) { +      return "Value can not be greater than " + max + "."; +    } +    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 { +    nglr.fromJson(value); +    return null; +  } catch (e) { +    return e.toString(); +  } +}; | 
