获取货币符号 angular 2
Get currency symbol angular 2
我正在使用 angular 2 和货币管道构建一个应用程序,但是我找不到根据没有任何数字的 ISO 值获取货币符号的方法。我的意思是我只是想要符号而不设置要格式化的数字。
正常情况.00
我只想要 $symbol
,不需要数字
例如
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'removeAFromString'})
export class RemoveAFromString implements PipeTransform {
transform(value: number){
return value.substring(1);
}
}
现在连接管道:
{{ portfolio.currentValue | currency : 'AUD' : true : '4.0' | removeAFromString}}
2017 年回答:
因为我只想要货币的符号,所以我最终用一个常数扩展了货币管道,并且 return 只有符号。有一个固定数字感觉有点像 "hack",但由于我不想创建新的货币地图并且我无法提供数字,我认为这是最简单的方法。
这是我所做的:
import { Pipe, PipeTransform } from '@angular/core';
import {CurrencyPipe} from "@angular/common";
@Pipe({name: 'currencySymbol'})
export class CurrencySymbolPipe extends CurrencyPipe implements
PipeTransform {
transform(value: string): any {
let currencyValue = super.transform(0, value,true, "1.0-2");
return currencyValue.replace(/[0-9]/g, '');
}
}
现在我可以将它用作:
{{ 'EUR' | currencySymbol }} and get '€'
感谢您的帮助和想法!
更新:
更改了 Varun 的已接受答案,因为在 2020 年我将使用 getCurrencySymbol() 来完成该任务
您可以在模板中使用以下代码,从而避免定义新管道:
{{ ( 0 | currency : currencyCode : 'symbol-narrow' ) | slice:0:1 }}
其中 this.currencyCode
设置为预期显示的三位数货币符号。
我知道这个问题已经很老了,但是如果有人像我一样遇到它,Angular 有一种方法可以做到这一点,而不必进行奇怪而奇妙的正则表达式和字符串操作。
我使用 @angular/common
中的 getCurrencySymbol
方法制作了以下管道
import { Pipe, PipeTransform } from '@angular/core';
import { getCurrencySymbol } from '@angular/common';
@Pipe({
name: 'currencySymbol'
})
export class CurrencySymbolPipe implements PipeTransform {
transform(currencyCode: string, format: 'wide' | 'narrow' = 'narrow', locale?: string): any {
return getCurrencySymbol(currencyCode, format, locale);
}
}
Angular 提供了一个内置方法 getCurrencySymbol
可以为您提供货币符号。您可以编写一个管道作为该方法的包装器
import { Pipe, PipeTransform } from '@angular/core';
import { getCurrencySymbol } from '@angular/common';
@Pipe({
name: 'currencySymbol'
})
export class CurrencySymbolPipe implements PipeTransform {
transform(
code: string,
format: 'wide' | 'narrow' = 'narrow',
locale?: string
): any {
return getCurrencySymbol(code, format, locale);
}
}
然后用作:
{{'USD'| currencySymbol}} ===> $
{{'INR'| currencySymbol}} ===> ₹
现场 Stackblitz 演示:
应用Url:https://angular-currency-symbol-pipe.stackblitz.io
编辑器 Url:https://stackblitz.com/edit/angular-currency-symbol-pipe
我正在使用 angular 2 和货币管道构建一个应用程序,但是我找不到根据没有任何数字的 ISO 值获取货币符号的方法。我的意思是我只是想要符号而不设置要格式化的数字。
正常情况.00
我只想要 $symbol
,不需要数字
例如
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'removeAFromString'})
export class RemoveAFromString implements PipeTransform {
transform(value: number){
return value.substring(1);
}
}
现在连接管道:
{{ portfolio.currentValue | currency : 'AUD' : true : '4.0' | removeAFromString}}
2017 年回答: 因为我只想要货币的符号,所以我最终用一个常数扩展了货币管道,并且 return 只有符号。有一个固定数字感觉有点像 "hack",但由于我不想创建新的货币地图并且我无法提供数字,我认为这是最简单的方法。
这是我所做的:
import { Pipe, PipeTransform } from '@angular/core';
import {CurrencyPipe} from "@angular/common";
@Pipe({name: 'currencySymbol'})
export class CurrencySymbolPipe extends CurrencyPipe implements
PipeTransform {
transform(value: string): any {
let currencyValue = super.transform(0, value,true, "1.0-2");
return currencyValue.replace(/[0-9]/g, '');
}
}
现在我可以将它用作:
{{ 'EUR' | currencySymbol }} and get '€'
感谢您的帮助和想法!
更新: 更改了 Varun 的已接受答案,因为在 2020 年我将使用 getCurrencySymbol() 来完成该任务
您可以在模板中使用以下代码,从而避免定义新管道:
{{ ( 0 | currency : currencyCode : 'symbol-narrow' ) | slice:0:1 }}
其中 this.currencyCode
设置为预期显示的三位数货币符号。
我知道这个问题已经很老了,但是如果有人像我一样遇到它,Angular 有一种方法可以做到这一点,而不必进行奇怪而奇妙的正则表达式和字符串操作。
我使用 @angular/common
getCurrencySymbol
方法制作了以下管道
import { Pipe, PipeTransform } from '@angular/core';
import { getCurrencySymbol } from '@angular/common';
@Pipe({
name: 'currencySymbol'
})
export class CurrencySymbolPipe implements PipeTransform {
transform(currencyCode: string, format: 'wide' | 'narrow' = 'narrow', locale?: string): any {
return getCurrencySymbol(currencyCode, format, locale);
}
}
Angular 提供了一个内置方法 getCurrencySymbol
可以为您提供货币符号。您可以编写一个管道作为该方法的包装器
import { Pipe, PipeTransform } from '@angular/core';
import { getCurrencySymbol } from '@angular/common';
@Pipe({
name: 'currencySymbol'
})
export class CurrencySymbolPipe implements PipeTransform {
transform(
code: string,
format: 'wide' | 'narrow' = 'narrow',
locale?: string
): any {
return getCurrencySymbol(code, format, locale);
}
}
然后用作:
{{'USD'| currencySymbol}} ===> $
{{'INR'| currencySymbol}} ===> ₹
现场 Stackblitz 演示:
应用Url:https://angular-currency-symbol-pipe.stackblitz.io
编辑器 Url:https://stackblitz.com/edit/angular-currency-symbol-pipe