123 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
| /*
 | |
| Input Mask plugin extensions
 | |
| http://github.com/RobinHerbots/jquery.inputmask
 | |
| Copyright (c) 2010 - 2014 Robin Herbots
 | |
| Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 | |
| Version: 0.0.0
 | |
| 
 | |
| Optional extensions on the jquery.inputmask base
 | |
| */
 | |
| (function ($) {
 | |
|     //extra definitions
 | |
|     $.extend($.inputmask.defaults.definitions, {
 | |
|         'A': {
 | |
|             validator: "[A-Za-z]",
 | |
|             cardinality: 1,
 | |
|             casing: "upper" //auto uppercasing
 | |
|         },
 | |
|         '#': {
 | |
|             validator: "[A-Za-z\u0410-\u044F\u0401\u04510-9]",
 | |
|             cardinality: 1,
 | |
|             casing: "upper"
 | |
|         }
 | |
|     });
 | |
|     $.extend($.inputmask.defaults.aliases, {
 | |
|         'url': {
 | |
|             mask: "ir",
 | |
|             placeholder: "",
 | |
|             separator: "",
 | |
|             defaultPrefix: "http://",
 | |
|             regex: {
 | |
|                 urlpre1: new RegExp("[fh]"),
 | |
|                 urlpre2: new RegExp("(ft|ht)"),
 | |
|                 urlpre3: new RegExp("(ftp|htt)"),
 | |
|                 urlpre4: new RegExp("(ftp:|http|ftps)"),
 | |
|                 urlpre5: new RegExp("(ftp:/|ftps:|http:|https)"),
 | |
|                 urlpre6: new RegExp("(ftp://|ftps:/|http:/|https:)"),
 | |
|                 urlpre7: new RegExp("(ftp://|ftps://|http://|https:/)"),
 | |
|                 urlpre8: new RegExp("(ftp://|ftps://|http://|https://)")
 | |
|             },
 | |
|             definitions: {
 | |
|                 'i': {
 | |
|                     validator: function (chrs, buffer, pos, strict, opts) {
 | |
|                         return true;
 | |
|                     },
 | |
|                     cardinality: 8,
 | |
|                     prevalidator: (function () {
 | |
|                         var result = [], prefixLimit = 8;
 | |
|                         for (var i = 0; i < prefixLimit; i++) {
 | |
|                             result[i] = (function () {
 | |
|                                 var j = i;
 | |
|                                 return {
 | |
|                                     validator: function (chrs, buffer, pos, strict, opts) {
 | |
|                                         if (opts.regex["urlpre" + (j + 1)]) {
 | |
|                                             var tmp = chrs, k;
 | |
|                                             if (((j + 1) - chrs.length) > 0) {
 | |
|                                                 tmp = buffer.join('').substring(0, ((j + 1) - chrs.length)) + "" + tmp;
 | |
|                                             }
 | |
|                                             var isValid = opts.regex["urlpre" + (j + 1)].test(tmp);
 | |
|                                             if (!strict && !isValid) {
 | |
|                                                 pos = pos - j;
 | |
|                                                 for (k = 0; k < opts.defaultPrefix.length; k++) {
 | |
|                                                     buffer[pos] = opts.defaultPrefix[k]; pos++;
 | |
|                                                 }
 | |
|                                                 for (k = 0; k < tmp.length - 1; k++) {
 | |
|                                                     buffer[pos] = tmp[k]; pos++;
 | |
|                                                 }
 | |
|                                                 return { "pos": pos };
 | |
|                                             }
 | |
|                                             return isValid;
 | |
|                                         } else {
 | |
|                                             return false;
 | |
|                                         }
 | |
|                                     }, cardinality: j
 | |
|                                 };
 | |
|                             })();
 | |
|                         }
 | |
|                         return result;
 | |
|                     })()
 | |
|                 },
 | |
|                 "r": {
 | |
|                     validator: ".",
 | |
|                     cardinality: 50
 | |
|                 }
 | |
|             },
 | |
|             insertMode: false,
 | |
|             autoUnmask: false
 | |
|         },
 | |
|         "ip": { //ip-address mask
 | |
|             mask: ["[[x]y]z.[[x]y]z.[[x]y]z.x[yz]", "[[x]y]z.[[x]y]z.[[x]y]z.[[x]y][z]"],
 | |
|             definitions: {
 | |
|                 'x': {
 | |
|                     validator: "[012]",
 | |
|                     cardinality: 1,
 | |
|                     definitionSymbol: "i"
 | |
|                 },
 | |
|                 'y': {
 | |
|                     validator: function (chrs, buffer, pos, strict, opts) {
 | |
|                         if (pos - 1 > -1 && buffer[pos - 1] != ".")
 | |
|                             chrs = buffer[pos - 1] + chrs;
 | |
|                         else chrs = "0" + chrs;
 | |
|                         return new RegExp("2[0-5]|[01][0-9]").test(chrs);
 | |
|                     },
 | |
|                     cardinality: 1,
 | |
|                     definitionSymbol: "i"
 | |
|                 },
 | |
|                 'z': {
 | |
|                     validator: function (chrs, buffer, pos, strict, opts) {
 | |
|                         if (pos - 1 > -1 && buffer[pos - 1] != ".") {
 | |
|                             chrs = buffer[pos - 1] + chrs;
 | |
|                             if (pos - 2 > -1 && buffer[pos - 2] != ".") {
 | |
|                                 chrs = buffer[pos - 2] + chrs;
 | |
|                             } else chrs = "0" + chrs;
 | |
|                         } else chrs = "00" + chrs;
 | |
|                         return new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs);
 | |
|                     },
 | |
|                     cardinality: 1,
 | |
|                     definitionSymbol: "i"
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     });
 | |
| })(jQuery);
 |