mirror of
https://github.com/supanadit/short-url.git
synced 2024-11-25 11:56:22 +00:00
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);
|