Upgrade to ExtJS 4.0.7 - Released 10/19/2011
[extjs.git] / docs / source / validations.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5   <title>The source code</title>
6   <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
7   <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
8   <style type="text/css">
9     .highlight { display: block; background-color: #ddd; }
10   </style>
11   <script type="text/javascript">
12     function highlight() {
13       document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
14     }
15   </script>
16 </head>
17 <body onload="prettyPrint(); highlight();">
18   <pre class="prettyprint lang-js"><span id='Ext-data-validations'>/**
19 </span> * @author Ed Spencer
20  *
21  * This singleton contains a set of validation functions that can be used to validate any type of data. They are most
22  * often used in {@link Ext.data.Model Models}, where they are automatically set up and executed.
23  */
24 Ext.define('Ext.data.validations', {
25     singleton: true,
26     
27 <span id='Ext-data-validations-property-presenceMessage'>    /**
28 </span>     * @property {String} presenceMessage
29      * The default error message used when a presence validation fails.
30      */
31     presenceMessage: 'must be present',
32     
33 <span id='Ext-data-validations-property-lengthMessage'>    /**
34 </span>     * @property {String} lengthMessage
35      * The default error message used when a length validation fails.
36      */
37     lengthMessage: 'is the wrong length',
38     
39 <span id='Ext-data-validations-property-formatMessage'>    /**
40 </span>     * @property {Boolean} formatMessage
41      * The default error message used when a format validation fails.
42      */
43     formatMessage: 'is the wrong format',
44     
45 <span id='Ext-data-validations-property-inclusionMessage'>    /**
46 </span>     * @property {String} inclusionMessage
47      * The default error message used when an inclusion validation fails.
48      */
49     inclusionMessage: 'is not included in the list of acceptable values',
50     
51 <span id='Ext-data-validations-property-exclusionMessage'>    /**
52 </span>     * @property {String} exclusionMessage
53      * The default error message used when an exclusion validation fails.
54      */
55     exclusionMessage: 'is not an acceptable value',
56     
57 <span id='Ext-data-validations-property-emailMessage'>    /**
58 </span>     * @property {String} emailMessage
59      * The default error message used when an email validation fails
60      */
61     emailMessage: 'is not a valid email address',
62     
63 <span id='Ext-data-validations-property-emailRe'>    /**
64 </span>     * @property {RegExp} emailRe
65      * The regular expression used to validate email addresses
66      */
67     emailRe: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,
68     
69 <span id='Ext-data-validations-method-presence'>    /**
70 </span>     * Validates that the given value is present.
71      * For example:
72      *
73      *     validations: [{type: 'presence', field: 'age'}]
74      *
75      * @param {Object} config Config object
76      * @param {Object} value The value to validate
77      * @return {Boolean} True if validation passed
78      */
79     presence: function(config, value) {
80         if (value === undefined) {
81             value = config;
82         }
83         
84         //we need an additional check for zero here because zero is an acceptable form of present data
85         return !!value || value === 0;
86     },
87     
88 <span id='Ext-data-validations-method-length'>    /**
89 </span>     * Returns true if the given value is between the configured min and max values.
90      * For example:
91      *
92      *     validations: [{type: 'length', field: 'name', min: 2}]
93      *
94      * @param {Object} config Config object
95      * @param {String} value The value to validate
96      * @return {Boolean} True if the value passes validation
97      */
98     length: function(config, value) {
99         if (value === undefined || value === null) {
100             return false;
101         }
102         
103         var length = value.length,
104             min    = config.min,
105             max    = config.max;
106         
107         if ((min &amp;&amp; length &lt; min) || (max &amp;&amp; length &gt; max)) {
108             return false;
109         } else {
110             return true;
111         }
112     },
113     
114 <span id='Ext-data-validations-method-email'>    /**
115 </span>     * Validates that an email string is in the correct format
116      * @param {Object} config Config object
117      * @param {String} email The email address
118      * @return {Boolean} True if the value passes validation
119      */
120     email: function(config, email) {
121         return Ext.data.validations.emailRe.test(email);
122     },
123     
124 <span id='Ext-data-validations-method-format'>    /**
125 </span>     * Returns true if the given value passes validation against the configured `matcher` regex.
126      * For example:
127      *
128      *     validations: [{type: 'format', field: 'username', matcher: /([a-z]+)[0-9]{2,3}/}]
129      *
130      * @param {Object} config Config object
131      * @param {String} value The value to validate
132      * @return {Boolean} True if the value passes the format validation
133      */
134     format: function(config, value) {
135         return !!(config.matcher &amp;&amp; config.matcher.test(value));
136     },
137     
138 <span id='Ext-data-validations-method-inclusion'>    /**
139 </span>     * Validates that the given value is present in the configured `list`.
140      * For example:
141      *
142      *     validations: [{type: 'inclusion', field: 'gender', list: ['Male', 'Female']}]
143      *
144      * @param {Object} config Config object
145      * @param {String} value The value to validate
146      * @return {Boolean} True if the value is present in the list
147      */
148     inclusion: function(config, value) {
149         return config.list &amp;&amp; Ext.Array.indexOf(config.list,value) != -1;
150     },
151     
152 <span id='Ext-data-validations-method-exclusion'>    /**
153 </span>     * Validates that the given value is present in the configured `list`.
154      * For example:
155      *
156      *     validations: [{type: 'exclusion', field: 'username', list: ['Admin', 'Operator']}]
157      *
158      * @param {Object} config Config object
159      * @param {String} value The value to validate
160      * @return {Boolean} True if the value is not present in the list
161      */
162     exclusion: function(config, value) {
163         return config.list &amp;&amp; Ext.Array.indexOf(config.list,value) == -1;
164     }
165 });</pre>
166 </body>
167 </html>