@Turtle_Onni

Как добавить пробелы между тысячными?

Всем привет!

Использую angularjs. Подскажите как разделить тысячные в input type number и при отображении?
пример: есть 23499532, нужно 23 499 532
Спасибо!
  • Вопрос задан
  • 12461 просмотр
Пригласить эксперта
Ответы на вопрос 4
@dev-sasha
const numb = 1234567;
const numbFmt = new Intl.NumberFormat('ru-RU').format(numb);
console.log('Отформатированное число: ' + numbFmt); // 1 234 567


const numb = 1234567;
const numbFmt = numb.toLocaleString('ru-RU');
console.log('Отформатированное число: ' + numbFmt);  // 1 234 567
Ответ написан
Комментировать
IonDen
@IonDen
JavaScript developer. IonDen.com
Вот так: https://jsfiddle.net/IonDen/55665p35/
function prettify (num) {
    var n = num.toString();
    var separator = " ";
    return n.replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g, "$1" + separator);
}

var $test = $(".test");
var val = $test.prop("value");
$test.prop("value", prettify(val));
Ответ написан
devpull
@devpull
Истина где-то рядом...
Еще один вариант.
Форматирует по blur.
При изменении пробелы убираются и можно корректировать.

спасибо Денис Инешин за регулярное выражение.

codepen.io/alexanderkshnyakin/pen/NNorZz
Ответ написан
Комментировать
@belokobylsky
Предыдущие способы плохо работают для очень больших чисел, поэтому вот мой:
console.log(
"498065392975507667366026341067548906436328316841307936116457316164193184705285250962660148627300967657213217328759941177315742017903027130095729437206958025287403606910196074469378649164695055964366281024547871829070617652494336"
  .split("")
  .reverse()
  .join("")
  .replace(/\d\d\d/g, "$& ")
  .split("")
  .reverse()
  .join("")
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы