| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 | <!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>The source code</title>  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>  <style type="text/css">    .highlight { display: block; background-color: #ddd; }  </style>  <script type="text/javascript">    function highlight() {      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";    }  </script></head><body onload="prettyPrint(); highlight();">  <pre class="prettyprint lang-js"><span id='Ext-data-validations'>/**</span> * @author Ed Spencer * * This singleton contains a set of validation functions that can be used to validate any type of data. They are most * often used in {@link Ext.data.Model Models}, where they are automatically set up and executed. */Ext.define('Ext.data.validations', {    singleton: true,    <span id='Ext-data-validations-property-presenceMessage'>    /**</span>     * @property {String} presenceMessage     * The default error message used when a presence validation fails.     */    presenceMessage: 'must be present',    <span id='Ext-data-validations-property-lengthMessage'>    /**</span>     * @property {String} lengthMessage     * The default error message used when a length validation fails.     */    lengthMessage: 'is the wrong length',    <span id='Ext-data-validations-property-formatMessage'>    /**</span>     * @property {String} formatMessage     * The default error message used when a format validation fails.     */    formatMessage: 'is the wrong format',    <span id='Ext-data-validations-property-inclusionMessage'>    /**</span>     * @property {String} inclusionMessage     * The default error message used when an inclusion validation fails.     */    inclusionMessage: 'is not included in the list of acceptable values',    <span id='Ext-data-validations-property-exclusionMessage'>    /**</span>     * @property {String} exclusionMessage     * The default error message used when an exclusion validation fails.     */    exclusionMessage: 'is not an acceptable value',    <span id='Ext-data-validations-property-emailMessage'>    /**</span>     * @property {String} emailMessage     * The default error message used when an email validation fails     */    emailMessage: 'is not a valid email address',    <span id='Ext-data-validations-property-emailRe'>    /**</span>     * @property {RegExp} emailRe     * The regular expression used to validate email addresses     */    emailRe: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,    <span id='Ext-data-validations-method-presence'>    /**</span>     * Validates that the given value is present.     * For example:     *     *     validations: [{type: 'presence', field: 'age'}]     *     * @param {Object} config Config object     * @param {Object} value The value to validate     * @return {Boolean} True if validation passed     */    presence: function(config, value) {        // No configs read, so allow just value to be passed        if (arguments.length === 1) {            value = config;        }                //we need an additional check for zero here because zero is an acceptable form of present data        return !!value || value === 0;    },    <span id='Ext-data-validations-method-length'>    /**</span>     * Returns true if the given value is between the configured min and max values.     * For example:     *     *     validations: [{type: 'length', field: 'name', min: 2}]     *     * @param {Object} config Config object     * @param {String} value The value to validate     * @return {Boolean} True if the value passes validation     */    length: function(config, value) {        if (value === undefined || value === null) {            return false;        }                var length = value.length,            min    = config.min,            max    = config.max;                if ((min && length < min) || (max && length > max)) {            return false;        } else {            return true;        }    },    <span id='Ext-data-validations-method-email'>    /**</span>     * Validates that an email string is in the correct format     * @param {Object} config Config object     * @param {String} email The email address     * @return {Boolean} True if the value passes validation     */    email: function(config, email) {        return Ext.data.validations.emailRe.test(email);    },    <span id='Ext-data-validations-method-format'>    /**</span>     * Returns true if the given value passes validation against the configured `matcher` regex.     * For example:     *     *     validations: [{type: 'format', field: 'username', matcher: /([a-z]+)[0-9]{2,3}/}]     *     * @param {Object} config Config object     * @param {String} value The value to validate     * @return {Boolean} True if the value passes the format validation     */    format: function(config, value) {        return !!(config.matcher && config.matcher.test(value));    },    <span id='Ext-data-validations-method-inclusion'>    /**</span>     * Validates that the given value is present in the configured `list`.     * For example:     *     *     validations: [{type: 'inclusion', field: 'gender', list: ['Male', 'Female']}]     *     * @param {Object} config Config object     * @param {String} value The value to validate     * @return {Boolean} True if the value is present in the list     */    inclusion: function(config, value) {        return config.list && Ext.Array.indexOf(config.list,value) != -1;    },    <span id='Ext-data-validations-method-exclusion'>    /**</span>     * Validates that the given value is not present in the configured `list`.     * For example:     *     *     validations: [{type: 'exclusion', field: 'username', list: ['Admin', 'Operator']}]     *     * @param {Object} config Config object     * @param {String} value The value to validate     * @return {Boolean} True if the value is not present in the list     */    exclusion: function(config, value) {        return config.list && Ext.Array.indexOf(config.list,value) == -1;    }});</pre></body></html>
 |