inputmask.phone.extensions.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. Input Mask plugin extensions
  3. http://github.com/RobinHerbots/jquery.inputmask
  4. Copyright (c) 2010 - Robin Herbots
  5. Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
  6. Version: 0.0.0-dev
  7. Phone extension.
  8. */
  9. (function (factory) {
  10. if (typeof define === "function" && define.amd) {
  11. define(["inputmask.dependencyLib", "inputmask"], factory);
  12. } else if (typeof exports === "object") {
  13. module.exports = factory(require("./inputmask.dependencyLib"), require("./inputmask"));
  14. } else {
  15. factory(window.dependencyLib || jQuery, window.Inputmask);
  16. }
  17. }
  18. (function ($, Inputmask) {
  19. Inputmask.extendAliases({
  20. "abstractphone": {
  21. countrycode: "",
  22. phoneCodes: [],
  23. mask: function (opts) {
  24. opts.definitions = {"#": opts.definitions["9"]};
  25. var masks = opts.phoneCodes.sort(function (a, b) {
  26. var maska = (a.mask || a).replace(/#/g, "9").replace(/[\+\(\)#-]/g, ""),
  27. maskb = (b.mask || b).replace(/#/g, "9").replace(/[\+\(\)#-]/g, ""),
  28. maskas = (a.mask || a).split("#")[0],
  29. maskbs = (b.mask || b).split("#")[0];
  30. return maskbs.indexOf(maskas) === 0 ? -1 : (maskas.indexOf(maskbs) === 0 ? 1 : maska.localeCompare(maskb));
  31. });
  32. //console.log(JSON.stringify(masks));
  33. return masks;
  34. },
  35. keepStatic: true,
  36. onBeforeMask: function (value, opts) {
  37. var processedValue = value.replace(/^0{1,2}/, "").replace(/[\s]/g, "");
  38. if (processedValue.indexOf(opts.countrycode) > 1 || processedValue.indexOf(opts.countrycode) === -1) {
  39. processedValue = "+" + opts.countrycode + processedValue;
  40. }
  41. return processedValue;
  42. },
  43. onUnMask: function (maskedValue, unmaskedValue, opts) {
  44. //implement me
  45. return unmaskedValue;
  46. },
  47. inputmode: "tel",
  48. }
  49. });
  50. return Inputmask;
  51. }));