Функция разбития разрядов числа пробелами
Автор
adminЗадача: разбить число по 3 знака с пробелами. То есть нужна функция разбития разрядов числа пробелами.
Зачем это может понадобиться? Один из примеров: это цены в интернет-магазине. Или вообще какой-то красивый счетчик. Придумывать можно до бесконечности.
Сейчас я разбираю только код на JavaScript. PHP вообще не трогаю. Это отдельная тема, да и не особо интересная. Так как там уже в самой PHP есть готовая функция number_format
.
Итак, код на JS (JavaScript). Их я нашел 2. Вернее нашел больше, но мне понравились вот эти 2. Оба кода протестировал и ниже опишу их.
Код
Код 1
Начну с самого рабочего кода, вернее с функции.
function abc2(n) {
n += "";
n = new Array(4 - n.length % 3).join("U") + n;
return n.replace(/([0-9U]{3})/g, "$1 ").replace(/U/g, "");
}
var inp_d_summ = '12345678901234567890';
alert(abc2(inp_d_summ)); //Вызов результата
Данная функция работает у меня без проблем.
Ее использую в местах, где идет обработка и вычисление каких-либо чисел, с последующей отправкой в html.
То есть в начале все посчиталось, потом этой функцией разбил разряды чисел (с подстановкой пробела между ними), а в конце вывод на нужное место в html макете.
Использую в счетчике корзины, количества товара и так далее.
Код 2
Теперь второй код. Это уже не функция и ведет она себе своенравно.
var price_d_item = '12345678901234567890';
price_d_item = (price_d_item.replace(/(\d{1,3})(?=((\d{3})*([^\d]|$)))/g, " $1 "));
alert(price_d_item ); //Вызов результата
Вообще код рабочий. Но, jQuery на него ругается и выдает ошибки. Поэтому использую его только когда нужно подставить числа с одного мета в другое. Например, с нажатой кнопки (data) во всплывающую форму (заказа товара, обратной связи и так далее).
Конфликтный код, так что советую использовать первый вариант.