/** * Created by lichbt on 7/15/2016. */ (function ( $ ) { $.fn.inputFormatMoney = function( options ) { // This is the easiest way to have default options. var opts = $.extend({ // These are the defaults. separator: '.', wrapClass: 'input-format-money', formatInputClass: 'input-format' }, options ); function formatInput (target, separator) { var reg1 = new RegExp("[^0-9\\" + separator + "]+", "g"); var reg2 = new RegExp("\\" + separator, "gi"); var reg3 = new RegExp("("+ separator +"{3})", "g"); var roundNum =target.val().replace(reg1, '').replace(reg2, ""); var num = roundNum.split("").reverse().join(""); var num2 = RemoveRougeChar(num.replace(reg3, "$1" + separator ).split("").reverse().join(""), separator); target.val(num2); return roundNum; } // Format input number function RemoveRougeChar (convertString, separator) { if (convertString.substring(0,1) == separator) { return convertString.substring(1, convertString.length) } return convertString; } function init(target, options) { var value = target.val(); var name = target.attr('name') + '_format-input'; target.wrap('
'); target.hide(); var input = $(''); input.insertAfter(target); var realValue = formatInput(input, options.separator); target.val(realValue); input.on('keyup change', function (e) { var self = $(this); if (e.which >= 37 && e.which <= 40) { } else { var realValue = formatInput(self, options.separator); target.val(realValue); } }); } this.filter( "input" ).each(function() { var self = $( this ); init(self, opts); }); return this; }; }(jQuery));