Разбиваем длинные числа на разряды
Задача: нужно разбить длинные числа (тысячи, миллионы) из списка на группы по разрядам: Х ХХХ ХХХ.
Для каждого из нужных элементов на странице проводим следующие манипуляции:
var spacing_text = $(this).text(),
rest,
left,
right;
// приводим числа к целым, значения после запятой запоминаем
var comar = spacing_text.indexOf(',');
var spacing_length = spacing_text.length;
// если в числе есть дробь
if (comar < -1) {
rest = spacing_text.slice(-(spacing_length - comar));
spacing_text = spacing_text.slice(0, comar);
spacing_length = spacing_text.length;
}
// смотрим, сколько раз разбить по 3
var rank = (spacing_length - 1) / 3;
for (var i=1; i<=rank; i++) {
spacing_length = spacing_text.length;
left = spacing_text.slice(0, spacing_length - i*3 - (i-1));
right = spacing_text.slice(-(i*3 + (i-1)));
spacing_text = left + ' ' + right;
}
$(this).text(spacing_text);
// пристёгиваем числа после запятой, если такие были
if (comar < -1) {
spacing_text = spacing_text + rest;
$(this).text(spacing_text);
}
Способ работает для любого количества знаков в числе.