1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
<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>
</head>
<body onload="prettyPrint();">
<pre class="prettyprint lang-js">/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
<div id="cls-Ext.form.VTypes"></div>/**
* @class Ext.form.VTypes
* <p>This is a singleton object which contains a set of commonly used field validation functions.
* The validations provided are basic and intended to be easily customizable and extended.</p>
* <p>To add custom VTypes specify the <code>{@link Ext.form.TextField#vtype vtype}</code> validation
* test function, and optionally specify any corresponding error text to display and any keystroke
* filtering mask to apply. For example:</p>
* <pre><code>
// custom Vtype for vtype:'time'
var timeTest = /^([1-9]|1[0-9]):([0-5][0-9])(\s[a|p]m)$/i;
Ext.apply(Ext.form.VTypes, {
// vtype validation function
time: function(val, field) {
return timeTest.test(val);
},
// vtype Text property: The error text to display when the validation function returns false
timeText: 'Not a valid time. Must be in the format "12:34 PM".',
// vtype Mask property: The keystroke filter mask
timeMask: /[\d\s:amp]/i
});
* </code></pre>
* Another example:
* <pre><code>
// custom Vtype for vtype:'IPAddress'
Ext.apply(Ext.form.VTypes, {
IPAddress: function(v) {
return /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(v);
},
IPAddressText: 'Must be a numeric IP address',
IPAddressMask: /[\d\.]/i
});
* </code></pre>
* @singleton
*/
Ext.form.VTypes = function(){
// closure these in so they are only created once.
var alpha = /^[a-zA-Z_]+$/,
alphanum = /^[a-zA-Z0-9_]+$/,
email = /^(\w+)([\-+.\'][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,
url = /(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
// All these messages and functions are configurable
return {
<div id="method-Ext.form.VTypes-email"></div>/**
* The function used to validate email addresses. Note that this is a very basic validation -- complete
* validation per the email RFC specifications is very complex and beyond the scope of this class, although
* this function can be overridden if a more comprehensive validation scheme is desired. See the validation
* section of the <a href="http://en.wikipedia.org/wiki/E-mail_address">Wikipedia article on email addresses</a>
* for additional information. This implementation is intended to validate the following emails:<tt>
* 'barney@example.de', 'barney.rubble@example.com', 'barney-rubble@example.coop', 'barney+rubble@example.com'
* </tt>.
* @param {String} value The email address
* @return {Boolean} true if the RegExp test passed, and false if not.
*/
'email' : function(v){
return email.test(v);
},
<div id="prop-Ext.form.VTypes-emailText"></div>/**
* The error text to display when the email validation function returns false. Defaults to:
* <tt>'This field should be an e-mail address in the format "user@example.com"'</tt>
* @type String
*/
'emailText' : 'This field should be an e-mail address in the format "user@example.com"',
<div id="prop-Ext.form.VTypes-emailMask"></div>/**
* The keystroke filter mask to be applied on email input. See the {@link #email} method for
* information about more complex email validation. Defaults to:
* <tt>/[a-z0-9_\.\-\+\'@]/i</tt>
* @type RegExp
*/
'emailMask' : /[a-z0-9_\.\-\+\'@]/i,
<div id="method-Ext.form.VTypes-url"></div>/**
* The function used to validate URLs
* @param {String} value The URL
* @return {Boolean} true if the RegExp test passed, and false if not.
*/
'url' : function(v){
return url.test(v);
},
<div id="prop-Ext.form.VTypes-urlText"></div>/**
* The error text to display when the url validation function returns false. Defaults to:
* <tt>'This field should be a URL in the format "http:/'+'/www.example.com"'</tt>
* @type String
*/
'urlText' : 'This field should be a URL in the format "http:/'+'/www.example.com"',
<div id="method-Ext.form.VTypes-alpha"></div>/**
* The function used to validate alpha values
* @param {String} value The value
* @return {Boolean} true if the RegExp test passed, and false if not.
*/
'alpha' : function(v){
return alpha.test(v);
},
<div id="prop-Ext.form.VTypes-alphaText"></div>/**
* The error text to display when the alpha validation function returns false. Defaults to:
* <tt>'This field should only contain letters and _'</tt>
* @type String
*/
'alphaText' : 'This field should only contain letters and _',
<div id="prop-Ext.form.VTypes-alphaMask"></div>/**
* The keystroke filter mask to be applied on alpha input. Defaults to:
* <tt>/[a-z_]/i</tt>
* @type RegExp
*/
'alphaMask' : /[a-z_]/i,
<div id="method-Ext.form.VTypes-alphanum"></div>/**
* The function used to validate alphanumeric values
* @param {String} value The value
* @return {Boolean} true if the RegExp test passed, and false if not.
*/
'alphanum' : function(v){
return alphanum.test(v);
},
<div id="prop-Ext.form.VTypes-alphanumText"></div>/**
* The error text to display when the alphanumeric validation function returns false. Defaults to:
* <tt>'This field should only contain letters, numbers and _'</tt>
* @type String
*/
'alphanumText' : 'This field should only contain letters, numbers and _',
<div id="prop-Ext.form.VTypes-alphanumMask"></div>/**
* The keystroke filter mask to be applied on alphanumeric input. Defaults to:
* <tt>/[a-z0-9_]/i</tt>
* @type RegExp
*/
'alphanumMask' : /[a-z0-9_]/i
};
}();
</pre>
</body>
</html>
|