| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- /*
- 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 (factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define("jquery.inputmask.extensions", ['jquery', 'jquery.inputmask'], factory);
- } else {
- // Browser globals
- factory(jQuery);
- }
- }(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, maskset, 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, maskset, pos, strict, opts) {
- if (opts.regex["urlpre" + (j + 1)]) {
- var tmp = chrs, k;
- if (((j + 1) - chrs.length) > 0) {
- tmp = maskset.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++) {
- maskset.buffer[pos] = opts.defaultPrefix[k]; pos++;
- }
- for (k = 0; k < tmp.length - 1; k++) {
- maskset.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: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]",
- definitions: {
- 'i': {
- validator: function (chrs, maskset, pos, strict, opts) {
- if (pos - 1 > -1 && maskset.buffer[pos - 1] != ".") {
- chrs = maskset.buffer[pos - 1] + chrs;
- if (pos - 2 > -1 && maskset.buffer[pos - 2] != ".") {
- chrs = maskset.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
- }
- }
- },
- "email": {
- mask: "*{1,20}[.*{1,20}][.*{1,20}][.*{1,20}]@*{1,20}.*{2,6}[.*{1,2}]",
- greedy: false,
- onBeforePaste: function (pastedValue, opts) {
- pastedValue = pastedValue.toLowerCase();
- return pastedValue.replace("mailto:", "");
- },
- definitions: {
- '*': {
- validator: "[A-Za-z\u0410-\u044F\u0401\u04510-9!#$%&'*+/=?^_`{|}~\-]",
- cardinality: 1,
- casing: "lower"
- }
- }
- }
- });
- }));
|