下面的代码应该回答这个问题的两个部分:
var input = "$820322310"; // String input
input = input.replace(/[^0-9\.]/g, ""); // remove all unnecessary characters
input = input.replace(/\.[0-9]+/, ""); // remove all after decimal (convert to integer)
if(parseInt(input[2]) >= 5) { // rounding to two decimal places
input[1] = input.slice(0, 1) + (parseInt(input[1]) + 1) + input.slice(2, input.length);
}
var count = 0;
for(var i = input.length-1; i >= 0; i--) {
if(i > 2) {
input = input.slice(0, i-1) + "0" + input.slice(i, input.length);
}
if(++count == 3 && i != 0) {
count = 0;
input = input.slice(0, i) + "," + input.slice(i, input.length);
}
}
见本在JSFiddle。
为什么这是一个糟糕的问题? 1.一次提出一个问题。 2.显示一些代码(最小的努力)。 3.明确你的要求。 – Amit
第二部分不是逻辑,你用小数部分整数,但在这些例子中是整数(带有千位分隔符) – jherax