jquery.inputmask.numeric.extensions.js 2.3 KB

12345
  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,postFormat:function(c,e,d,b){var a=c.slice();d||a.splice(e,0,"?");a=a.join("");if(b.autoGroup||d&&-1!=a.indexOf(b.groupSeparator))for(var a=a.replace(RegExp("\\"+b.groupSeparator,"g"),""),f=RegExp("([-+]?[\\d?]+)([\\d?]{"+b.groupSize+"})");f.test(a);)a=a.replace(f,"$1"+b.groupSeparator+"$2"),a=a.replace(b.groupSeparator+
  2. b.groupSeparator,b.groupSeparator);c.length=a.length;b=0;for(f=a.length;b<f;b++)c[b]=a.charAt(b);e=d?e:h.inArray("?",c);d||c.splice(e,1);return e},regex:{number:function(c,e,d,b){c=h.inputmask.escapeRegex.call(this,c);d=h.inputmask.escapeRegex.call(this,d);b=isNaN(b)?b:"{0,"+b+"}";return RegExp("^[+-]?(\\d+|\\d{1,"+e+"}(("+c+"\\d{"+e+"})?)+)("+d+"\\d"+b+")?$")}},onKeyDown:function(c,e,d){var b=h(this);if(c.keyCode==d.keyCode.TAB){if(c=this._valueGet(),e=c.indexOf(d.radixPoint),-1!=e){for(var a=1;a<
  3. d.digits;a++)c[e+a]&&(c+="0");c!==b.val()&&b.val(c)}}else if(c.keyCode==d.keyCode.DELETE||c.keyCode==d.keyCode.BACKSPACE)d.postFormat(e,0,!0,d),this._valueSet(e.join(""))},definitions:{"~":{validator:function(c,e,d,b,a){if(""==c)return!1;if(1==d&&"0"===e[0]&&/[\d-]/.test(c))return e[0]="",{pos:0};var f=b?e.slice(0,d):e.slice();f.splice(d+1,0,c);f=f.join("");a.autoGroup&&(f=f.replace(RegExp("\\"+a.groupSeparator,"g"),""));var g=a.regex.number(a.groupSeparator,a.groupSize,a.radixPoint,a.digits).test(f);
  4. if(!g&&(f+="0",g=a.regex.number(a.groupSeparator,a.groupSize,a.radixPoint,a.digits).test(f),!g)){g=f.lastIndexOf(a.groupSeparator);for(i=f.length-g;3>=i;i++)f+="0";g=a.regex.number(a.groupSeparator,a.groupSize,a.radixPoint,a.digits).test(f);if(!g&&!b&&c==a.radixPoint&&(g=a.regex.number(a.groupSeparator,a.groupSize,a.radixPoint,a.digits).test("0"+f+"0")))return e[d]="0",d++,{pos:d}}return!1!=g&&!b?{pos:a.postFormat(e,d+1,!1,a)}:g},cardinality:1,prevalidator:null}},insertMode:!0,autoUnmask:!1},"non-negative-decimal":{regex:{number:function(c,
  5. e,d,b){c=h.inputmask.escapeRegex.call(this,c);d=h.inputmask.escapeRegex.call(this,d);b=isNaN(b)?b:"{0,"+b+"}";return RegExp("^[+]?(\\d+|\\d{1,"+e+"}(("+c+"\\d{"+e+"})?)+)("+d+"\\d"+b+")?$")}},alias:"decimal"},integer:{regex:{number:function(){return/^([+-]?\d*)$/}},alias:"decimal"}})})(jQuery);