Javascript. Как делать отступ цифр?
Подскажите пожалуйста. Вот есть код:
<div class="new-price"><?=$value['price'];?> ₽</div>
Этот код содержит цену. Она храниться в ['price']. Цена в ней храниться 9890 ₽. Нужно что бы цена не было слитно, то есть 9890, должно выглядеть как 9 890. Должен идти пробел после цифры 9. А если же сделать цену к примеру 400, то так и будет 400 без пробела. Дак вот, я не могу понять как это сделать.
Думаю что это делается через Javascript. То есть как то нужно передать эту цену в Javascript и там уже попробовать сделать так что бы если цена содержит 4 цифры, то к этой цене делается пробел после первой цифри, а если же цена содержит 5 цифр, то пробел уже ставиться после двух первым цифр. Ну как то так. Но я просто уже пытался это сделать, но не как не получается, прямо вообще нету представлений о том как это сделать.
Может это все делается намного проще, просто еще не знаю как это делается. Может кто небудь подскажет что нужно для этого сделать? Если нужен еще какой то код для точного понятие, то могу скинуть.
Ответы (2 шт):
Для этих целей вы можете конечно использовать JS, но есть и PHP функция number format.
В примерах можно найти пример подходящий под вашу задачу. Тут уже будет вопрос "копеек".
<div class="new-price"><?=number_format($value['price'], 2, ',', ' ');?> ₽</div>
Я полагаю примерно так: (Вряд ли это самое правильное и лаконичное решение)
let elem = document.getElementById('elem');
price = elem.innerText;
let price_string = price.toString();
let count_num = 0;
for (let i = 0; i < price_string.length; i++) {
count_num++;
}
new_price = "";
if (count_num > 3) {
let new_num = price_string.split("");
new_num[0] = new_num[0] + " ";
new_price = new_num.join("");
} else {
new_price = price;
}
elem.innerText = new_price;