jquery.inputmask.numeric.extensions.js 3.3 KB

1234567
  1. (function(h){h.extend(h.inputmask.defaults.aliases,{numeric:{mask:function(a){0!==a.repeat&&isNaN(a.integerDigits)&&(a.integerDigits=a.repeat);a.repeat=0;a.autoGroup=a.autoGroup&&""!=a.groupSeparator;if(a.autoGroup&&isFinite(a.integerDigits)){var b=Math.floor(a.integerDigits/a.groupSize);a.integerDigits+=0==a.integerDigits%a.groupSize?b-1:b}b=a.prefix;b=b+"[+]"+("~{1,"+a.integerDigits+"}");void 0!=a.digits&&(isNaN(a.digits)||0<parseInt(a.digits))&&(b=a.digitsOptional?b+("["+a.radixPoint+"~{"+a.digits+
  2. "}]"):b+(a.radixPoint+"~{"+a.digits+"}"));return b+=a.suffix},placeholder:"",greedy:!1,digits:"*",digitsOptional:!0,groupSeparator:"",radixPoint:".",groupSize:3,autoGroup:!1,allowPlus:!0,allowMinus:!0,integerDigits:"+",prefix:"",suffix:"",skipRadixDance:!1,getLastValidPosition:function(a,b,c){var e=-1,f=a.validPositions,d;for(d in f)f=parseInt(d),f>e&&(e=f);void 0!=b&&(a=a.buffer,!1===c.skipRadixDance&&""!=c.radixPoint&&-1!=h.inArray(c.radixPoint,a)&&(e=h.inArray(c.radixPoint,a)));return e},rightAlign:!0,
  3. postFormat:function(a,b,c,e){var f=!1;if(""==e.groupSeparator||-1!=h.inArray(e.radixPoint,a)&&b>=h.inArray(e.radixPoint,a))return{pos:b};var d=a.slice();c||d.splice(b,0,"?");d=d.join("");if(e.autoGroup||c&&-1!=d.indexOf(e.groupSeparator)){var g=h.inputmask.escapeRegex.call(this,e.groupSeparator),d=d.replace(RegExp(g,"g"),""),g=d.split(e.radixPoint),d=g[0];if(d!=e.prefix+"?0")for(var f=!0,k=RegExp("([-+]?[\\d?]+)([\\d?]{"+e.groupSize+"})");k.test(d);)d=d.replace(k,"$1"+e.groupSeparator+"$2"),d=d.replace(e.groupSeparator+
  4. e.groupSeparator,e.groupSeparator);1<g.length&&(d+=e.radixPoint+g[1])}a.length=d.length;e=0;for(g=d.length;e<g;e++)a[e]=d.charAt(e);d=h.inArray("?",a);c||a.splice(d,1);return{pos:c?b:d,refreshFromBuffer:f}},onKeyDown:function(a,b,c){h(this);if(c.autoGroup&&a.keyCode==c.keyCode.DELETE||a.keyCode==c.keyCode.BACKSPACE)return c.postFormat(b,0,!0,c)},regex:{integerPart:function(a){return/[-+]?\d+/}},negationhandler:function(a,b,c,e,f){return!e&&f.allowMinus&&"-"===a&&(a=b.join("").match(f.regex.integerPart(f)),
  5. 0<a.length)?"+"==b[a.index]?(b.splice(a.index,1),{pos:a.index,c:"-",refreshFromBuffer:!0,caret:c}):"-"==b[a.index]?(b.splice(a.index,1),{refreshFromBuffer:!0,caret:c-1}):{pos:a.index,c:"-",caret:c+1}:!1},definitions:{"~":{validator:function(a,b,c,e,f){var d=f.negationhandler(a,b,c,e,f);if(!d){d=e?RegExp("[0-9"+h.inputmask.escapeRegex.call(this,f.groupSeparator)+"]").test(a):/[0-9]/.test(a);if(!1!=d){var g=b.join("").match(f.regex.integerPart(f)),k=h.inArray(f.radixPoint,b);if(g&&"0"==g["0"][0]&&c>=
  6. f.prefix.length&&(-1==k||c<k))b.splice(g.index,1);else if("0"==a&&g&&0<g["0"].length&&c==f.prefix.length)return!1}!1==d||e||a==f.radixPoint||!0!==f.autoGroup||(d=f.postFormat(b,c,"-"==a||"+"==a?!0:!1,f))}return d},cardinality:1,prevalidator:null},"+":{validator:function(a,b,c,e,f){b="[";!0===f.allowMinus&&(b+="-");!0===f.allowPlus&&(b+="+");return RegExp(b+"]").test(a)},cardinality:1,prevalidator:null}},insertMode:!0,autoUnmask:!1,onUnMask:function(a,b,c){a=a.replace(c.prefix,"");a=a.replace(c.suffix,
  7. "");a=a.replace(RegExp(c.groupSeparator,"g"),"");a=a.replace(c.radixPoint,".");return Number(a)},isComplete:function(a,b){var c=a.join("").replace(b.prefix,""),c=c.replace(b.suffix,""),c=c.replace(RegExp(b.groupSeparator,"g"),""),c=c.replace(b.radixPoint,".");return isFinite(c)}},decimal:{alias:"numeric"},integer:{alias:"numeric",digits:"0"}})})(jQuery);