我正在尝试模仿FireFox中输入类型='数字'的逗号插入,因为它还不支持它。天真的,它适用于Chrome。我让我的正则表达式工作......只是没有正确的顺序,我需要扭转它。
您可以看到它会将数字格式设置为123,4而不是1,234。我尝试'反向()',但我无法让它工作,Firefox声称它不是一个功能。
如果有人可以调整我的正则表达式,那么它可以正确执行我想要的任务,那么反之亦然。
答案 0 :(得分:1)
您可以使用以下内容:
var str = "foo 123456789.22 bar";
str = str.replace(/\d(?=(?:\d{3})+(?!\d))/g, '$&,');
请注意,这只会在小数部分不超过3位时起作用,否则它也会在小数部分添加,
。
答案 1 :(得分:1)
试试这个方法:
$('input').keyup(function(){
var $this = $(this);
var num = $this.val().replace(/,/g, '');
$this.val(num.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"));
});
似乎有点简单,似乎有效 - http://jsfiddle.net/hCTDV/3/
答案 2 :(得分:0)
你可以做什么你可以反向字符串然后应用正则表达式然后再反转它,解决方案如下:
$(this).val( $(this).val().replace(".","").split("").reverse().join("").replace(/([0-9]{3}(?=([0-9])))/g, "$1,").split(""),reverse().join("");
我希望这会有所帮助