<!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>