jquery.inputmask.numeric.extensions.js 3.0 KB

1234567
  1. (function(h){h.extend(h.inputmask.defaults.aliases,{decimal:{mask:"~",placeholder:"",repeat:10,greedy:!1,numericInput:!0,digits:"*",groupSeparator:"",radixPoint:".",groupSize:3,autoGroup:!1,allowPlus:!0,allowMinus:!0,getMaskLength:function(c,f,d,b,a){var e=c.length;!f&&1<d&&(e+=c.length*(d-1));c=h.inputmask.escapeRegex.call(this,a.groupSeparator);a=h.inputmask.escapeRegex.call(this,a.radixPoint);b=b.join("");a=b.replace(RegExp(c,"g"),"").replace(RegExp(a),"");return e+(b.length-a.length)},postFormat:function(c,
  2. f,d,b){if(""==b.groupSeparator)return f;var a=c.slice(),e=h.inArray(b.radixPoint,c);d||a.splice(0==f||f<=e||b.skipRadixDance?f+1:f,0,"?");a=a.join("");if(b.autoGroup||d&&-1!=a.indexOf(b.groupSeparator)){for(var g=h.inputmask.escapeRegex.call(this,b.groupSeparator),a=a.replace(RegExp(g,"g"),""),g=a.split(b.radixPoint),a=g[0],j=RegExp("([-+]?[\\d?]+)([\\d?]{"+b.groupSize+"})");j.test(a);)a=a.replace(j,"$1"+b.groupSeparator+"$2"),a=a.replace(b.groupSeparator+b.groupSeparator,b.groupSeparator);1<g.length&&
  3. (a+=b.radixPoint+g[1])}c.length=a.length;g=0;for(j=a.length;g<j;g++)c[g]=a.charAt(g);a=h.inArray("?",c);d||c.splice(a,1);return d?f:a<=e||b.skipRadixDance&&0!=a?a-1:a},regex:{number:function(c,f,d,b,a,e){c=h.inputmask.escapeRegex.call(this,c);d=h.inputmask.escapeRegex.call(this,d);b=isNaN(b)?b:"{0,"+b+"}";return RegExp("^"+("["+(a?"+":"")+(e?"-":"")+"]?")+"(\\d+|\\d{1,"+f+"}(("+c+"\\d{"+f+"})?)+)("+d+"\\d"+b+")?$")}},onKeyDown:function(c,f,d){var b=h(this);if(c.keyCode==d.keyCode.TAB){if(c=h.inArray(d.radixPoint,
  4. f),-1!=c){for(var a=b.data("_inputmask").masksets,b=b.data("_inputmask").activeMasksetIndex,e=1;e<=d.digits&&e<d.getMaskLength(a[b]._buffer,a[b].greedy,a[b].repeat,f,d);e++)void 0==f[c+e]&&(f[c+e]="0");this._valueSet(f.join(""))}}else if(c.keyCode==d.keyCode.DELETE||c.keyCode==d.keyCode.BACKSPACE)d.postFormat(f,0,!0,d),this._valueSet(f.join(""))},definitions:{"~":{validator:function(c,f,d,b,a){if(""==c)return!1;if(!b&&1>=d&&"0"===f[0]&&/[\d-]/.test(c))return f[0]="",{pos:0};var e=b?f.slice(0,d):f.slice();
  5. e.splice(0==d&&0==f.length?d:d+1,0,c);e=e.join("");if(a.autoGroup&&!b)var g=h.inputmask.escapeRegex.call(this,a.groupSeparator),e=e.replace(RegExp(g,"g"),"");g=a.regex.number(a.groupSeparator,a.groupSize,a.radixPoint,a.digits,a.allowPlus,a.allowMinus).test(e);if(!g&&(e+="0",g=a.regex.number(a.groupSeparator,a.groupSize,a.radixPoint,a.digits,a.allowPlus,a.allowMinus).test(e),!g)){g=e.lastIndexOf(a.groupSeparator);for(i=e.length-g;3>=i;i++)e+="0";g=a.regex.number(a.groupSeparator,a.groupSize,a.radixPoint,
  6. a.digits,a.allowPlus,a.allowMinus).test(e);if(!g&&!b&&c==a.radixPoint&&(g=a.regex.number(a.groupSeparator,a.groupSize,a.radixPoint,a.digits,a.allowPlus,a.allowMinus).test("0"+e+"0")))return f[d]="0",d++,{pos:d}}return!1!=g&&!b&&c!=a.radixPoint?{pos:a.postFormat(f,d,!1,a)}:g},cardinality:1,prevalidator:null}},insertMode:!0,autoUnmask:!1},integer:{regex:{number:function(c,f,d,b,a,e){c=h.inputmask.escapeRegex.call(this,c);return RegExp("^"+("["+(a?"+":"")+(e?"-":"")+"]?")+"(\\d+|\\d{1,"+f+"}(("+c+"\\d{"+
  7. f+"})?)+)$")}},alias:"decimal"}})})(jQuery);