|
5 | 5 | * |
6 | 6 | * @website http://formvalidator.net/ |
7 | 7 | * @license Dual licensed under the MIT or GPL Version 2 licenses |
8 | | -* @version 2.1.30 |
| 8 | +* @version 2.1.31 |
9 | 9 | */ |
10 | 10 | (function($) { |
11 | 11 |
|
|
1214 | 1214 | var emailParts = email.toLowerCase().split('@'); |
1215 | 1215 | if( emailParts.length == 2 ) { |
1216 | 1216 | return $.formUtils.validators.validate_domain.validatorFunction(emailParts[1]) && |
1217 | | - !(/[^a-zA-Z0-9_\+\.\-]/.test(emailParts[0])); |
| 1217 | + !(/[^\w\+\.\-]/.test(emailParts[0])); |
1218 | 1218 | } |
1219 | 1219 |
|
1220 | 1220 | return false; |
|
1289 | 1289 | } else if (dot < 2 || dot > 57) { |
1290 | 1290 | return false; |
1291 | 1291 | } else { |
1292 | | - var firstChar = domain.substring(0, 1); |
1293 | | - var lastChar = domain.substring(domain.length - 1, domain.length); |
| 1292 | + var firstChar = domain.substring(0, 1), |
| 1293 | + lastChar = domain.substring(domain.length - 1, domain.length); |
1294 | 1294 |
|
1295 | 1295 | if (firstChar === '-' || firstChar === '.' || lastChar === '-' || lastChar === '.') { |
1296 | 1296 | return false; |
1297 | 1297 | } |
1298 | 1298 | if (domain.split('.').length > 3 || domain.split('..').length > 1) { |
1299 | 1299 | return false; |
1300 | 1300 | } |
1301 | | - if (domain.replace(/[0-9a-z\.\-]/g, '') !== '') { |
| 1301 | + if (domain.replace(/[-\da-z\.]/g, '') !== '') { |
1302 | 1302 | return false; |
1303 | 1303 | } |
1304 | 1304 | } |
|
1379 | 1379 | $.formUtils.addValidator({ |
1380 | 1380 | name : 'url', |
1381 | 1381 | validatorFunction : function(url) { |
1382 | | - // written by Scott Gonzalez: http://projects.scottsplayground.com/iri/ but added support for arrays in the url ?arg[]=sdfsdf |
1383 | | - var urlFilter = /^(https|http|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; |
| 1382 | + // written by Scott Gonzalez: http://projects.scottsplayground.com/iri/ |
| 1383 | + // - Victor Jonsson added support for arrays in the url ?arg[]=sdfsdf |
| 1384 | + // - General improvements made by Stéphane Moureau <https://github.com/TraderStf> |
| 1385 | + var urlFilter = /^(https?|ftp):\/\/((((\w|-|\.|~|[\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])(\w|-|\.|~|[\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])(\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/(((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|\[|\]|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#(((\w|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i; |
1384 | 1386 | if( urlFilter.test(url) ) { |
1385 | 1387 | var domain = url.split('://')[1]; |
1386 | 1388 | var domainSlashPos = domain.indexOf('/'); |
|
0 commit comments