Загрузка...

Функция разбития разрядов числа пробелами

Technology
09.08.2023
8
4
2
Avatar
Автор
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) во всплывающую форму (заказа товара, обратной связи и так далее).

Конфликтный код, так что советую использовать первый вариант.


Теги:
5 min read
Share this post:
Подписывайтесь в Telegram
Top