2012-02-10 45 views
0

我有插件,jQuery格式的数字。但它不好。我想要而不是如果用户已经输入了小数点分隔符,请输入小数点分隔符。如何在用户输入小数点前从用户输入小数点分隔符

例子:

  • 122.222,555,,,,..应该成为122.222,555
  • 122,222.555 ..,,,,应该成为122,222.555

这里是我的插件:

(function($) 
{ 
    $.fn.myPlugin = function(options) 
    { 
     options = $.extend({}, { 
      thousands: '.', 
      decimal: ',' 
     }, options); 

     this.keyup(function() 
     { 
      $(this).val(function(el, val) 
      { 
       val = val.replace(/[^\d.,]/g, '').split(options.decimal); 
       val[0] = val[0].replace(options.decimal === '.' ? /,/g : /\./g, ''); 
       val[0] = val[0].replace(/(\d)(?=(\d{3})+$)/g, "$1" + options.thousands); 
       return val.join(options.decimal); 
      }); 
     }); 
    }; 

})(jQuery); 

这里的HTML:

<input id="txt" size="40" type="text"> 
<input id="new" size="40" type="text"> 
<script type="text/javascript"> 
    $('#txt').myPlugin(); 
    $('#new').myPlugin({thousands:',',decimal:'.'}); 
</script> 
+0

你能重新提出你的问题吗?它是你制作的插件还是已经完成的插件? – 2012-02-10 10:38:23

+0

谢谢保罗帮我编辑问题。 – minh 2012-02-11 14:39:35

+0

@minh你的例子是不够的。你期望什么:'123,456.456,789','1,2,3','123.456,7891'? – 2012-02-11 14:59:10

回答

0

也许它可以帮助您知道有一个.toLocaleString()函数。

相关问题