正则表达式|在我的网页上提交的文本中格式化数字

时间:2015-10-22 05:42:09

标签: javascript jquery regex

我正在使用正则表达式来格式化文本字段中的数字,我已经实现了在每3个数字之后插入逗号的功能,如下所示

  • 123 - > 123
  • 1234 - > 1,234
  • 123456-> 123456

我正在使用以下功能来实现这一目标。

function Comma(Num) { //function to add commas to textboxes
        Num += '';
        Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
        Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
        x = Num.split('.');
        console.log(x);
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        console.log(x1);
        console.log(x2);
        var rgx = /(\d+)(\d{2})/;
        while (rgx.test(x1))
            x1 = x1.replace(rgx, '$1' + ',' + '$2');
        console.log("x1: "+x1);
        return x1 + x2;
    }

<input maxlength="" class="form-control preco number" name="preco[]" onkeyup = "javascript:this.value=Comma(this.value);" required>

我想要实现的是以下格式

  • 12&GT; 12
  • 123 - &gt; 1,23
  • 1234 - &gt; 12,34
  • 123456-&GT; 1.234,56

你能指导我如何使用正则表达式实现这种格式吗?

1 个答案:

答案 0 :(得分:0)

试试这个

^-?\d{1,3}(,\d{3})*(\.\d\d)?$|^\.\d\d$

结果

1
12
.99
12.34 
-18.34
12,345.67
999,999,999,999,999.99