2 //==================================================================================================
4 //==================================================================================================
6 Form
.validators
= (function() {
10 validators
.errMessages
= {
13 email
: 'Invalid email address',
15 match
: 'Must match field "{{field}}"'
18 validators
.required = function(options
) {
21 message
: this.errMessages
.required
24 return function required(value
) {
25 options
.value
= value
;
29 message
: Form
.helpers
.createTemplate(options
.message
, options
)
32 if (value
=== null || value
=== undefined || value
=== false || value
=== '') return err
;
36 validators
.regexp = function(options
) {
37 if (!options
.regexp
) throw new Error('Missing required "regexp" option for "regexp" validator');
41 message
: this.errMessages
.regexp
44 return function regexp(value
) {
45 options
.value
= value
;
49 message
: Form
.helpers
.createTemplate(options
.message
, options
)
52 //Don't check empty values (add a 'required' validator for this)
53 if (value
=== null || value
=== undefined || value
=== '') return;
55 if (!options
.regexp
.test(value
)) return err
;
59 validators
.email = function(options
) {
62 message
: this.errMessages
.email
,
63 regexp
: /^[\w\-]{1,}([\w\-\+.]{1,1}[\w\-]{1,}){0,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/
66 return validators
.regexp(options
);
69 validators
.url = function(options
) {
72 message
: this.errMessages
.url
,
73 regexp
: /^(http|https):\/\/(([A-Z0-9][A-Z0-9_\-]*)(\.[A-Z0-9][A-Z0-9_\-]*)+)(:(\d+))?\/?/i
76 return validators
.regexp(options
);
79 validators
.match = function(options
) {
80 if (!options
.field
) throw new Error('Missing required "field" options for "match" validator');
84 message
: this.errMessages
.match
87 return function match(value
, attrs
) {
88 options
.value
= value
;
92 message
: Form
.helpers
.createTemplate(options
.message
, options
)
95 //Don't check empty values (add a 'required' validator for this)
96 if (value
=== null || value
=== undefined || value
=== '') return;
98 if (value
!== attrs
[options
.field
]) return err
;