3个零后的角2个货币数字空间

时间:2018-11-13 08:37:59

标签: javascript angular typescript internationalization

例如,我的电话号码:30000,我想这样显示:30000。我该怎么用?

更多示例:300000-> 30万,

3000000-> 3000 000。

不是点或昏迷,而是要识别有多少个数字并在数字之间放置空格。

4 个答案:

答案 0 :(得分:4)

考虑使用带有数字的管道,将其转换为字符串并根据需要设置其格式。您可以添加两种货币。

示例:(要点插图多于有效代码,目前无法测试)

//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;
 }
}

答案 1 :(得分:1)

使用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);

将与HTML相关的打字稿文件(.ts)添加到包含<h2>item.price</h2>的html中,将num替换为item.price值。

或使用pipe

您可以在 Stackblitz

上看到示例

只需致电:element.price = format.formatCurrency(element.price);

一旦您定义了助手。您可以通过以下方式定义您的用法: <h2 *ngFor="let item of item">{{ item.price }}</h2>

答案 2 :(得分:0)

让您拥有自定义管道: https://toddmotto.com/angular-pipes-custom-pipes

在transform函数中,将其转换为如下所示的字符串: Add commas or spaces to group every three digits

答案 3 :(得分:0)

一种非常简单的方法:

function formatNumber(num) {
    return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}