jquery.inputmask.extensions.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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.2
  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. 'url' : {
  18. mask: "ir",
  19. placeholder: "",
  20. separator: "",
  21. defaultPrefix: "http://",
  22. regex: {
  23. urlpre1: new RegExp("[fh]"),
  24. urlpre2: new RegExp("(ft|ht)"),
  25. urlpre3: new RegExp("(ftp|htt)"),
  26. urlpre4: new RegExp("(ftp:|http|ftps)"),
  27. urlpre5: new RegExp("(ftp:/|ftps:|http:|https)"),
  28. urlpre6: new RegExp("(ftp://|ftps:/|http:/|https:)"),
  29. urlpre7: new RegExp("(ftp://|ftps://|http://|https:/)"),
  30. urlpre8: new RegExp("(ftp://|ftps://|http://|https://)")
  31. },
  32. definitions: {
  33. 'i': {
  34. validator: function(chrs, buffer, pos, strict, opts) {
  35. return true;
  36. },
  37. cardinality: 8,
  38. prevalidator: (function(){
  39. var result = [], prefixLimit = 8;
  40. for( var i=0; i < prefixLimit; i++ ) {
  41. result[i] = (function(){
  42. var j = i;
  43. return { validator: function(chrs, buffer, pos, strict, opts) {
  44. if ( opts.regex["urlpre"+(j+1)] ) {
  45. var tmp = chrs, k;
  46. if ( ( ( j + 1 ) - chrs.length ) > 0 ) {
  47. tmp = buffer.join('').substring(0,( ( j + 1 ) - chrs.length )) + "" + tmp;
  48. }
  49. var isValid = opts.regex["urlpre"+(j+1)].test(tmp);
  50. if (!strict && !isValid) {
  51. pos = pos-j;
  52. for (k=0;k<opts.defaultPrefix.length;k++){
  53. buffer[pos] = opts.defaultPrefix[k];pos++;
  54. }
  55. for (k=0; k<tmp.length-1;k++) {
  56. buffer[pos] = tmp[k];pos++;
  57. }
  58. return { "pos": pos };
  59. }
  60. return isValid;
  61. } else {
  62. return false;
  63. }
  64. }, cardinality: j};
  65. })();
  66. }
  67. return result;
  68. })()
  69. },
  70. 'r': {
  71. validator: function(chrs, buffer, pos, strict, opts) {
  72. return true;
  73. },
  74. cardinality: 2000
  75. }
  76. },
  77. insertMode: false,
  78. autoUnmask: false
  79. }
  80. });
  81. })(jQuery);