123 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/*
 | 
						|
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);
 |