typescript 在右侧或左侧添加货币符号[重复]

a64a0gku  于 2023-10-22  发布在  TypeScript
关注(0)|答案(1)|浏览(96)

此问题已在此处有答案

How to display the currency symbol to the right in Angular(11个回答)
5天前关闭。
如果输入是,如何在右边添加货币符号,如果输入是$,如何在左边添加货币符号?有没有水管或者别的什么?
这是我写的管道,但用户可以输入字母,这是我想避免的,或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;
    }
}
a2mppw5e

a2mppw5e1#

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

ng add @angular/localize

然后,您必须在app.module.ts中注册所需的所有区域设置。请注意,register函数必须直接调用(而不是在模块构造函数内部):

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的本地化特性而不是重新发明轮子是绝对有意义的。
  • 您的问题表明您的货币值已包含货币符号。你应该尝试重构它。如果可能的话,添加一个单独的货币选择器。我们可以实现一个单独的过滤器来提取货币符号。

相关问题