我有一个数字说2,500.00,我想将数字转换为2.500,00。因此,我们可以使用替换
替换特殊字符var x = 2,500.00;
x.replace(/,/g,".");
和" Dot"我们也可以做到。但在这种情况下,它不会起作用,因为当我们如上所述为逗号应用替换功能时,数字将变为2.500.00,如果我们现在申请,它将变为2,500,00。
那么有没有办法将2,500.00转换为2.500,00?
答案 0 :(得分:3)
String.prototype.replace can take a function:
'2,123,500.00'.replace(/[,.]/g, function(c){ return c===',' ? '.' : ','; });
答案 1 :(得分:2)
您可以使用:
var x = '2,123,500.00';
var arr = x.split('.');
var y = arr[0].replace(/,/g, '.') + ',' + arr[1];
//=> 2.123.500,00
答案 2 :(得分:1)
You're in luck, .replace()
accept a function as second argument. That function has the matched string as argument and the returned value will be the replace_by
value of .replace()
.
In short, you can simply check what the matched string is and return the right value :
var str = "2,500.00";
var changed_str = str.replace(/,|\./g, function(old){
if (old === '.')
return ',';
else if (old === ',')
return '.';
});
document.write(changed_str)
答案 3 :(得分:0)
为什么不使用内置方法正确格式化数字?
Number.toLocaleString()
在这里工作得很好。
如果你实际上有一个数字,你可以使用正确的语言环境轻松实现这一点。如果您有一个字符串表示您的号码,您首先必须解析它。
答案 4 :(得分:-1)
This (now) works for any number of commas or dots, even if trailing or leading dots or commas.
HTML:
<div id="result"></div>
JS:
var x = '.,2.123,50.0.00.';
var between_dots = x.split('.');
for (var i = 0; i < between_dots.length; i++) {
between_dots[i] = between_dots[i].replace(/,/g, '.');
}
var y = between_dots.join(',');
document.getElementById('result').innerHTML = y;