在右侧或左侧添加货币符号

问题描述 投票:0回答:1

如果输入是 €,如何在右侧添加货币符号,或者如果输入是 $,如何在左侧添加货币符号?有管道或其他东西吗?

这是我写的管道,但用户可以输入我想避免的字母,或 000。

transform(value: unknown, currencySymbol: string):unknown {
    

    let stringValue = <string>value;

    if (!stringValue) {
      stringValue = currencySymbol + ' 0';
    }

    if (stringValue.charAt(0) === currencySymbol) {
      return currencySymbol + ' ' + stringValue.replace(currencySymbol, '').trim();
    } else 
    {
      return currencySymbol + ' ' + value;
    }

    
  
}
angular typescript angular-pipe
1个回答
0
投票

Angular 货币管道已经根据区域设置数据做到了这一点。为了使用它,您需要先添加本地化功能:

ng add @angular/localize

然后,您必须在 app.module.ts 中注册您需要的所有语言环境。请注意,必须直接调用寄存器函数(而不是在模块构造函数内):

import { registerLocaleData } from '@angular/common';
import de from '@angular/common/locales/de';

registerLocaleData(de, 'de');

您可以像这样使用货币管道:

{{ 9999.99 | currency }} <br/>
{{ 9999.99 | currency: "EUR" : "symbol" : undefined : "de" }}

输出:

$9,999.99
9.999,99 €

备注: 请注意,不仅货币符号的位置会自动更改,而且其他内容也会自动更改,例如小数点分隔符(. 或 ,)。因此,在这里使用 Angular 的本地化功能而不是重新发明轮子是绝对有意义的。

© www.soinside.com 2019 - 2024. All rights reserved.