3 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
對(duì)于整數(shù):
var x=12345678;
x=x.toString();
var lastThree = x.substring(x.length-3);
var otherNumbers = x.substring(0,x.length-3);
if(otherNumbers != '')
lastThree = ',' + lastThree;
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;
alert(res);
對(duì)于浮點(diǎn)數(shù):
var x=12345652457.557;
x=x.toString();
var afterPoint = '';
if(x.indexOf('.') > 0)
afterPoint = x.substring(x.indexOf('.'),x.length);
x = Math.floor(x);
x=x.toString();
var lastThree = x.substring(x.length-3);
var otherNumbers = x.substring(0,x.length-3);
if(otherNumbers != '')
lastThree = ',' + lastThree;
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree + afterPoint;
alert(res);

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
我遲到了,但我想這會(huì)有所幫助的:)
您可以使用Number.prototype.toLocaleString()
句法
numObj.toLocaleString([locales [, options]])
var number = 123456.789;
// India uses thousands/lakh/crore separators
document.getElementById('result').innerHTML = number.toLocaleString('en-IN');
// → 1,23,456.789
document.getElementById('result1').innerHTML = number.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
});
// → Rs.123,456.79
<div id="result"></div>
<div id="result1"></div>

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
對(duì)于整數(shù),不需要其他操作。
這將匹配末尾的每個(gè)數(shù)字,其后具有1個(gè)或多個(gè)雙位數(shù)字模式,并將其替換為自身+“,”:
"125465778".replace(/(\d)(?=(\d\d)+$)/g, "$1,");
-> "1,25,46,57,78"
但是,由于我們希望末尾有3個(gè),因此讓我們通過在輸入的匹配末尾之前添加額外的“ \ d”來明確聲明這一點(diǎn):
"125465778".replace(/(\d)(?=(\d\d)+\d$)/g, "$1,");
-> "12,54,65,778"
添加回答
舉報(bào)