| /* |
| 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); |