Я думал, что поделюсь небольшим трюком, который я использую для форматирования большого числа.Вместо того, чтобы вставлять запятые или пробелы, я вставляю пустой, но видимый интервал между «тысячами».Это делает тысячи легко видимыми, но позволяет копировать / вставлять ввод в исходном формате, без запятых / пробелов.
// This function accepts an integer, and produces a piece of HTML that shows it nicely with
// some empty space at "thousand" markers.
// Note, these space are not spaces, if you copy paste, they will not be visible.
function valPrettyPrint(orgVal) {
// Save after-comma text, if present
var period = orgVal.indexOf(".");
var frac = period >= 0 ? orgVal.substr(period) : "";
// Work on input as an integer
var val = "" + Math.trunc(orgVal);
var res = "";
while (val.length > 0) {
res = val.substr(Math.max(0, val.length - 3), 3) + res;
val = val.substr(0, val.length - 3);
if (val.length > 0) {
res = "<span class='thousandsSeparator'></span>" + res;
}
}
// Add the saved after-period information
res += frac;
return res;
}
С этим CSS:
.thousandsSeparator {
display : inline;
padding-left : 4px;
}
См. Пример JSFiddle.