我在stackoverflow上找到了一个正则表达式来添加','或'。'每三个数字后,取决于您的语言。
(\d)(?=(\d\d\d)+(?!\d))
问题是当我们达到小数点时也会发生这种情况,例如:
5487445.46878
使用以下代码(和正则表达式)的结果是:
return number.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
结果是:
5,487,445.46,878
当我根据您的语言转换数字时,我正在使用此正则表达式。例如,在荷兰语中,逗号用作分隔符,因此我执行以下操作:
return number.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1.")
结果是
5.487.445,46.878
这些当然需要成为:
5,487,445.46878
和
5.487.445,4687
有人知道我需要更新正则表达式以忽略小数点吗?
答案 0 :(得分:3)
您可以使用RegEx
,但如果您的号码中有逗号或点,则先将其分开。
var input = '5487445.46878';
var parts = input.split('.');
var part1 = parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
var part2 = parts[1];
alert(part1 + '.' + part2);
答案 1 :(得分:2)
你可以试试这个: -
function thousandsSeparator(input) {
var output = input
if (parseFloat(input)) {
input = new String(input);
var parts = input.split(".");
parts[0] = parts[0].split("").reverse().join("").replace(/(\d{3})(?!$)/g, "$1,").split("").reverse().join("");
output = parts.join(".");
}
return output;
}