Угловое 2 денежное пространство после 3 нулей - PullRequest
0 голосов
/ 13 ноября 2018

например, у меня есть номер: 30000, и я хочу отобразить его так: 30 000. Что мне использовать для этого?

Больше примеров: 300000 -> 300 000,

3000000 -> 3000 000.

И дело не в точках или комах, я хочу узнать, сколько там чисели ставьте пробел между числами.

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018

Чрезвычайно простой способ сделать это:

function formatNumber(num) {
    return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
0 голосов
/ 13 ноября 2018

Либо с использованием JavaScript следующим образом:

function numberWithSpaces(x) {
   var parts = x.toString().split(".");
   parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " ");
   return parts.join(".");
}
var num = numberWithSpaces(123456789);
console.log(num);

Это выдаст 123 456 789

Редактировать:

Машинопись:

function numberWithSpaces(x) {
  let parts = x.toString().split('.');
  parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
  return parts.join('.');
}
let num = this.numberWithSpaces(123456789);
console.log(num);

добавить в ваш файл машинописного текста (.ts), связанный с вашим html, который содержит <h2>item.price</h2>, заменить num на ваше значение item.price.

или используя трубу .

Вы можете увидеть пример на Stackblitz

Просто позвоните по телефону: element.price = format.formatCurrency(element.price);

Как только вы определили помощника. Для вашего использования вы можете определить по: <h2 *ngFor="let item of item">{{ item.price }}</h2>

0 голосов
/ 13 ноября 2018

Создайте собственную трубу: https://toddmotto.com/angular-pipes-custom-pipes

В функции преобразования преобразуйте ее в строку следующим образом: Добавьте запятые или пробелы для группировки каждые три цифры

0 голосов
/ 13 ноября 2018

рассмотрите возможность использования канала, который принимает число, преобразует его в строку и форматирует, как вам нравится ... вы можете добавить валюту два.

пример: (более точная иллюстрация, чем рабочий код .. на данный момент не могу проверить)

//convert the string to an array
var arr = str.split("");
//back to string with added spaces
let string = "";
let count = 0;
for(i=arr.length-1; i>=0; i--){
 if(count<3){
  string =  arr[i] + string;
  count = count+1;
 }
 else{
  string = " " + string;
  count=0;
  i=i+1;
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...