inputmask.extensions.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*!
  2. * inputmask.extensions.js
  3. * https://github.com/RobinHerbots/Inputmask
  4. * Copyright (c) 2010 - 2019 Robin Herbots
  5. * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
  6. * Version: 4.0.9
  7. */
  8. (function(factory) {
  9. if (typeof define === "function" && define.amd) {
  10. define([ "./inputmask" ], factory);
  11. } else if (typeof exports === "object") {
  12. module.exports = factory(require("./inputmask"));
  13. } else {
  14. factory(window.Inputmask);
  15. }
  16. })(function(Inputmask) {
  17. Inputmask.extendDefinitions({
  18. A: {
  19. validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
  20. casing: "upper"
  21. },
  22. "&": {
  23. validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
  24. casing: "upper"
  25. },
  26. "#": {
  27. validator: "[0-9A-Fa-f]",
  28. casing: "upper"
  29. }
  30. });
  31. Inputmask.extendAliases({
  32. cssunit: {
  33. regex: "[+-]?[0-9]+\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)"
  34. },
  35. url: {
  36. regex: "(https?|ftp)//.*",
  37. autoUnmask: false
  38. },
  39. ip: {
  40. mask: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]",
  41. definitions: {
  42. i: {
  43. validator: function(chrs, maskset, pos, strict, opts) {
  44. if (pos - 1 > -1 && maskset.buffer[pos - 1] !== ".") {
  45. chrs = maskset.buffer[pos - 1] + chrs;
  46. if (pos - 2 > -1 && maskset.buffer[pos - 2] !== ".") {
  47. chrs = maskset.buffer[pos - 2] + chrs;
  48. } else chrs = "0" + chrs;
  49. } else chrs = "00" + chrs;
  50. return new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs);
  51. }
  52. }
  53. },
  54. onUnMask: function(maskedValue, unmaskedValue, opts) {
  55. return maskedValue;
  56. },
  57. inputmode: "numeric"
  58. },
  59. email: {
  60. mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",
  61. greedy: false,
  62. casing: "lower",
  63. onBeforePaste: function(pastedValue, opts) {
  64. pastedValue = pastedValue.toLowerCase();
  65. return pastedValue.replace("mailto:", "");
  66. },
  67. definitions: {
  68. "*": {
  69. validator: "[0-9\uff11-\uff19A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5!#$%&'*+/=?^_`{|}~-]"
  70. },
  71. "-": {
  72. validator: "[0-9A-Za-z-]"
  73. }
  74. },
  75. onUnMask: function(maskedValue, unmaskedValue, opts) {
  76. return maskedValue;
  77. },
  78. inputmode: "email"
  79. },
  80. mac: {
  81. mask: "##:##:##:##:##:##"
  82. },
  83. vin: {
  84. mask: "V{13}9{4}",
  85. definitions: {
  86. V: {
  87. validator: "[A-HJ-NPR-Za-hj-npr-z\\d]",
  88. casing: "upper"
  89. }
  90. },
  91. clearIncomplete: true,
  92. autoUnmask: true
  93. }
  94. });
  95. return Inputmask;
  96. });