1(function($){ 2 $.fn.validationEngineLanguage = function(){ 3 }; 4 $.validationEngineLanguage = { 5 newLang: function(){ 6 $.validationEngineLanguage.allRules = { 7 "uEmail": { 8 "regex": /^(?:[a-z\d]+[_\-\+\.]?)*[a-z\d]+@(?:([a-z\d]+\-?)*[a-z\d]+\.)+([a-z]{2,})+$/i, 9 "alertText": "* Invalid email address" 10 }, 11 "uPhone": { 12 "regex": /^(\d{3,4}-?)?\d{7,8}$/, 13 "alertText": "* Invalid phone number" 14 }, 15 "uMobilePhone": { 16 "regex": /^0?1\d{10}$/, 17 "alertText": "* Invalid phone number" 18 }, 19 "uUsername": { 20 "regex": /^[a-z_]\w{2,20}$/i, 21 "alertText": "* Invalid username" 22 }, 23 "uQq": { 24 "regex": /^[0-9]{5,13}$/i, 25 "alertText": "* Invalid QQ" 26 }, 27 "uIp": { 28 "regex": /^(\d{1,3}\.){3}\d{1,3}$/, 29 "alertText": "* Invalid IP address" 30 }, 31 "uNumber": { 32 "regex": /^\d+$/, 33 "alertText": "* Numbers only" 34 }, 35 "uWord": { 36 "regex": /^[a-zA-Z]+$/, 37 "alertText": "* Letters only" 38 }, 39 40 "required": { // Add your regex rules here, you can take telephone as an example 41 "regex": "none", 42 "alertText": "* This field is required", 43 "alertTextCheckboxMultiple": "* Please select an option", 44 "alertTextCheckboxe": "* This checkbox is required", 45 "alertTextDateRange": "* Both date range fields are required" 46 }, 47 "requiredInFunction": { 48 "func": function(field, rules, i, options){ 49 return (field.val() == "test") ? true : false; 50 }, 51 "alertText": "* Field must equal test" 52 }, 53 "dateRange": { 54 "regex": "none", 55 "alertText": "* Invalid ", 56 "alertText2": "Date Range" 57 }, 58 "dateTimeRange": { 59 "regex": "none", 60 "alertText": "* Invalid ", 61 "alertText2": "Date Time Range" 62 }, 63 "minSize": { 64 "regex": "none", 65 "alertText": "* Minimum ", 66 "alertText2": " characters allowed" 67 }, 68 "maxSize": { 69 "regex": "none", 70 "alertText": "* Maximum ", 71 "alertText2": " characters allowed" 72 }, 73 "groupRequired": { 74 "regex": "none", 75 "alertText": "* You must fill one of the following fields" 76 }, 77 "min": { 78 "regex": "none", 79 "alertText": "* Minimum value is " 80 }, 81 "max": { 82 "regex": "none", 83 "alertText": "* Maximum value is " 84 }, 85 "past": { 86 "regex": "none", 87 "alertText": "* Date prior to " 88 }, 89 "future": { 90 "regex": "none", 91 "alertText": "* Date past " 92 }, 93 "maxCheckbox": { 94 "regex": "none", 95 "alertText": "* Maximum ", 96 "alertText2": " options allowed" 97 }, 98 "minCheckbox": { 99 "regex": "none", 100 "alertText": "* Please select ", 101 "alertText2": " options" 102 }, 103 "equals": { 104 "regex": "none", 105 "alertText": "* Fields do not match"
106 }, 107 "creditCard": { 108 "regex": "none", 109 "alertText": "* Invalid credit card number" 110 }, 111 "phone": { 112 // credit: jquery.h5validate.js / orefalo 113 "regex": /^([\+][0-9]{1,3}[\ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9\ \.\-\/]{3,20})((x|ext|extension)[\ ]?[0-9]{1,4})?$/, 114 "alertText": "* Invalid phone number" 115 }, 116 "mobile": { 117 // credit: jquery.h5validate.js / orefalo 118 "regex": /^(((13[0-9]{1})|(15[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/, 119 "alertText": "* Invalid phone number" 120 }, 121 "email": { 122 // HTML5 compatible email regex ( http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html# e-mail-state-%28type=email%29 ) 123 "regex": /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/, 124 "alertText": "* Invalid email address" 125 }, 126 "integer": { 127 "regex": /^[\-\+]?\d+$/, 128 "alertText": "* Not a valid integer" 129 }, 130 "number": { 131 // Number, including positive, negative, and floating decimal. credit: orefalo 132 "regex": /^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/, 133 "alertText": "* Invalid floating decimal number" 134 }, 135 "float": { 136 // Number, including positive, negative, and floating decimal. credit: orefalo 137 "regex": /^(-?\d+\.\d+$)|([\-\+]?\d+$)/, 138 "alertText": "* Invalid number" 139 }, 140 "date": { 141 "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/, 142 "alertText": "* Invalid date format must be YYYY-MM-DD" 143 }, 144 "ipv4": { 145 "regex": /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/, 146 "alertText": "* Invalid IP address" 147 }, 148 "url": { 149 "regex": /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i, 150 "alertText": "* Invalid URL" 151 }, 152 "onlyNumberSp": { 153 "regex": /^[0-9\ ]+$/, 154 "alertText": "* Numbers only" 155 }, 156 "onlyLetterSp": { 157 "regex": /^[a-zA-Z\ \']+$/, 158 "alertText": "* Letters only" 159 }, 160 "onlyLetterNumber": { 161 "regex": /^[0-9a-zA-Z]+$/, 162 "alertText": "* No special characters allowed" 163 }, 164 // --- CUSTOM RULES -- Those are specific to the demos, they can be removed or changed to your likings 165 "ajaxUserCall": { 166 "url": "ajaxValidateFieldUser", 167 // you may want to pass extra data on the aja
167x call 168 "extraData": "name=eric", 169 "alertText": "* This user is already taken", 170 "alertTextLoad": "* Validating, please wait" 171 }, 172 "ajaxUserCallPhp": { 173 "url": "phpajax/ajaxValidateFieldUser.php", 174 // you may want to pass extra data on the ajax call 175 "extraData": "name=eric", 176 // if you provide an "alertTextOk", it will show as a green prompt when the field validates 177 "alertTextOk": "* This username is available", 178 "alertText": "* This user is already taken", 179 "alertTextLoad": "* Validating, please wait" 180 }, 181 "ajaxNameCall": { 182 // remote json service location 183 "url": "ajaxValidateFieldName", 184 // error 185 "alertText": "* This name is already taken", 186 // if you provide an "alertTextOk", it will show as a green prompt when the field validates 187 "alertTextOk": "* This name is available", 188 // speaks by itself 189 "alertTextLoad": "* Validating, please wait" 190 }, 191 "ajaxNameCallPhp": { 192 // remote json service location 193 "url": "phpajax/ajaxValidateFieldName.php", 194 // error 195 "alertText": "* This name is already taken", 196 // speaks by itself 197 "alertTextLoad": "* Validating, please wait" 198 }, 199 "validate2fields": { 200 "alertText": "* Please input HELLO" 201 }, 202 //tls warning:homegrown not fielded 203 "dateFormat":{ 204 "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/, 205 "alertText": "* Invalid Date" 206 }, 207 "onlyNumberABC_": { 208 "regex": /^(\w){6,18}$/, 209 "alertText": "6 to 18 characters, letters, numbers, underscores" 210 }, 211 "onlyNumberABC_new": { 212 "regex": /^(\w){5,18}$/, 213 "alertText": "5 to 18 characters, letters, numbers, underscores" 214 }, 215 //tls warning:homegrown not fielded 216 "dateTimeFormat": { 217 "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/, 218 "alertText": "* Invalid Date or Date Format", 219 "alertText2": "Expected Format: ", 220 "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM or ", 221 "alertText4": "yyyy-mm-dd hh:mm:ss AM|PM" 222 }, 223 "chinaZip": { 224 "regex": /^[0-9][0-9]{5}$/, 225 "alertText": "* Invalid postal code" 226 }, 227 "phone_tel": { 228 "regex": /(^(\d{2,4}[-_£¨D]?)?\d{3,8}([-_£¨D]?\d{3,8})?([-_£¨D]?\d{1,7})?$)|(^0?1[35]\d{9}$)/, 229 "alertText": "* Invalid mobile phone number or telephone number" 230 }, 231 //Username 232 "chkNameFormat":{ 233 "regex":/^\w{6,18}$/,
234 "alertText":'Username malformed' 235 }, 236 //Password 237 'chkPwdFormat':{ 238 'regex':/^\w{6,16}$/i, 239 'alertText':'Password format is incorrect' 240 }, 241 "IDCard": { 242 "func": function(field,rules,i,options) { 243 var num = field.val(); 244 if (num == 111111111111111) { 245 return false; 246 } 247 num = num.toUpperCase(); 248 //Éí·ÝÖ¤ºÅÂëΪ15λ»òÕß18룬15λʱȫΪÊý×Ö£¬18λǰ17λΪÊý×Ö£¬×îºóһλÊÇУÑé룬¿ÉÄÜΪÊý×Ö»ò×Ö·ûX¡£ 249 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) { 250 return false; 251 } 252 253 //УÑéλ°´ÕÕISO 7064:1983.MOD 11-2µÄ¹æ¶¨Éú³É£¬X¿ÉÒÔÈÏΪÊÇÊý×Ö10¡£ 254 //ÏÂÃæ·Ö±ð·ÖÎö³öÉúÈÕÆÚºÍУÑéλ 255 var len, re; 256 len = num.length; 257 if (len == 15) { 258 re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); 259 var arrSplit = num.match(re); 260 261 //¼ì²éÉúÈÕÈÕÆÚÊÇ·ñÕýÈ· 262 var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); 263 var bGoodDay; 264 bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 265 if (!bGoodDay) { 266 return false; 267 } 268 else { 269 //½«15λÉí·Ý֤ת³É18λ 270 //УÑéλ°´ÕÕISO 7064:1983.MOD 11-2µÄ¹æ¶¨Éú³É£¬X¿ÉÒÔÈÏΪÊÇÊý×Ö10¡£ 271 var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 272 var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 273 var nTemp = 0, i; 274 num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); 275 for (i = 0; i < 17; i++) { 276 nTemp += num.substr(i, 1) * arrInt[i]; 277 } 278 num += arrCh[nTemp % 11]; 279 return true; 280 } 281 } 282 if (len == 18) { 283 re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); 284 var arrSplit = num.match(re); 285 286 //¼ì²éÉúÈÕÈÕÆÚÊÇ·ñÕýÈ· 287 var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); 288 var bGoodDay; 289 bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 290 if (!bGoodDay) { 291 return false; 292 } 293 else { 294 //¼ìÑé18λÉí·ÝÖ¤µÄУÑéÂëÊÇ·ñÕýÈ·¡£ 295 //УÑéλ°´ÕÕISO 7064:1983.MOD 11-2µÄ¹æ¶¨Éú³É£¬X¿ÉÒÔÈÏΪÊÇÊý×Ö10¡£ 296 var valnum; 297 var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 298 var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 299 var nTemp = 0, i; 300 for (i = 0; i < 17; i++) { 301 nTemp += num.substr(i, 1) * arrInt[i]; 302 } 303 valnum = arrCh[nTemp % 11]; 304 if (valnum != num.substr(17, 1)) { 305 return false;
306 } 307 return true; 308 } 309 } 310 return false; 311 }, 312 "alertText": "* ÎÞЧµÄÉí·ÝÖ¤ºÅÂë" 313 } 314 }; 315 316 } 317 }; 318 $.validationEngineLanguage.newLang(); 319})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.