jquery.inputmask.extensions.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /*
  2. Input Mask plugin extensions
  3. http://github.com/RobinHerbots/jquery.inputmask
  4. Copyright (c) 2010 - 2013 Robin Herbots
  5. Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
  6. Version: 1.2.3
  7. Optional extensions on the jquery.inputmask base
  8. */
  9. (function ($) {
  10. //extra definitions
  11. $.extend($.inputmask.defaults.definitions, {
  12. 'A': { //auto uppercasing
  13. validator: "[A-Za-z]",
  14. cardinality: 1,
  15. casing: "upper"
  16. }
  17. });
  18. $.extend($.inputmask.defaults.aliases, {
  19. 'url': {
  20. mask: "ir",
  21. placeholder: "",
  22. separator: "",
  23. defaultPrefix: "http://",
  24. regex: {
  25. urlpre1: new RegExp("[fh]"),
  26. urlpre2: new RegExp("(ft|ht)"),
  27. urlpre3: new RegExp("(ftp|htt)"),
  28. urlpre4: new RegExp("(ftp:|http|ftps)"),
  29. urlpre5: new RegExp("(ftp:/|ftps:|http:|https)"),
  30. urlpre6: new RegExp("(ftp://|ftps:/|http:/|https:)"),
  31. urlpre7: new RegExp("(ftp://|ftps://|http://|https:/)"),
  32. urlpre8: new RegExp("(ftp://|ftps://|http://|https://)")
  33. },
  34. definitions: {
  35. 'i': {
  36. validator: function (chrs, buffer, pos, strict, opts) {
  37. return true;
  38. },
  39. cardinality: 8,
  40. prevalidator: (function () {
  41. var result = [], prefixLimit = 8;
  42. for (var i = 0; i < prefixLimit; i++) {
  43. result[i] = (function () {
  44. var j = i;
  45. return {
  46. validator: function (chrs, buffer, pos, strict, opts) {
  47. if (opts.regex["urlpre" + (j + 1)]) {
  48. var tmp = chrs, k;
  49. if (((j + 1) - chrs.length) > 0) {
  50. tmp = buffer.join('').substring(0, ((j + 1) - chrs.length)) + "" + tmp;
  51. }
  52. var isValid = opts.regex["urlpre" + (j + 1)].test(tmp);
  53. if (!strict && !isValid) {
  54. pos = pos - j;
  55. for (k = 0; k < opts.defaultPrefix.length; k++) {
  56. buffer[pos] = opts.defaultPrefix[k]; pos++;
  57. }
  58. for (k = 0; k < tmp.length - 1; k++) {
  59. buffer[pos] = tmp[k]; pos++;
  60. }
  61. return { "pos": pos };
  62. }
  63. return isValid;
  64. } else {
  65. return false;
  66. }
  67. }, cardinality: j
  68. };
  69. })();
  70. }
  71. return result;
  72. })()
  73. }
  74. },
  75. insertMode: false,
  76. autoUnmask: false
  77. },
  78. "ip": {
  79. mask: "i.i.i.i",
  80. definitions: {
  81. 'i': {
  82. validator: "[0-255]",
  83. cardinality: 3,
  84. prevalidator: [
  85. { validator: "[0-2]", cardinality: 1 },
  86. { validator: "[0-25]", cardinality: 2 },
  87. ]
  88. }
  89. }
  90. }
  91. });
  92. })(jQuery);