RegExp:货币格式

时间:2009-05-22 05:07:57

标签: regex

我需要格式化数字,以便数千不被任何东西分开,数百个用点分隔。例如

1234.56 12.34 123

我写了以下ReqExp

amountValue.replace(/^(\d+)[,.](\d{3})[.,](\d{2})$/,'$1' + '$2' +'.'+'$3').replace(/^(\d+),(\d{2})$/,'$1' +'.'+'$2');

如果有办法缩短它?

谢谢!

2 个答案:

答案 0 :(得分:1)

认为这可能有效:

amountValue.replace(/^(\d*)[,.]?(\d{0,3})[.,](\d{2})$/,'$1' + '$2' +'.'+'$3');

针对您的数据进行尝试。

答案 1 :(得分:1)

我会删除任何非小数点的非数字字符:

amountValue.replace(/[^0-9](?!\d{2}$)/, '').replace(/,(?=\d{2}$)/, '.');