Вот Whan вы хотите, это будет обрабатывать не только AUD, но все валюты:
import {Pipe, PipeTransform} from '@angular/core'
import {CurrencyPipe} from "@angular/common";
@Pipe({
name: "myCurrencyPipe"
})
export class MyCurrencyPipe implements PipeTransform {
constructor(private currencyPipe: CurrencyPipe) {}
transform(value: any, currencyCode?: string, symbolDisplay?: boolean, digits?: string): string {
let transformed = this.currencyPipe.transform(value, currencyCode, symbolDisplay, digits);
let myTransformed:string[] = [];
for (var i = 0; i < transformed.length; i++) {
if(!this.isLetter(transformed[i])){
myTransformed.push(transformed[i])
}
}
return myTransformed.join("");
}
isLetter(c) {
return c.toLowerCase() != c.toUpperCase();
}
}
Называйте это как то: {{ portfolio.currentValue | myCurrency : 'AUD' : true : '4.0' }}
Сначала он сделает все, что делает CurrencyPipe
, позвонив по номеру this.currencyPipe.transform(value, currencyCode, symbolDisplay, digits);
, то он модифицирует вывод, удаляя из него все буквы.
app.module.ts
:
@NgModule({
declarations: [
//..
MyCurrencyPipe,
],
providers: [
//..
CurrencyPipe
]
//..
})
Если вы хотите создать только трубу, заботиться о CurrencyPipe
выходе:
@Pipe({
name: 'removeLettersFromStringPipe'
})
export class RemoveLettersFromStringPipe implements PipeTransform {
transform(value: string){
let myTransformed:string[] = [];
for (var i = 0; i < value.length; i++) {
if(!this.isLetter(value[i])){
myTransformed.push(value[i])
}
}
return myTransformed.join("");
}
isLetter(c) {
return c.toLowerCase() != c.toUpperCase();
}
}
Используйте его как {{ portfolio.currentValue | currency : 'AUD' : true : '4.0' | removeLettersFromStringPipe}}
Это не упоминается в [Документов] (https://angular.io /docs/ts/latest/api/common/index/CurrencyPipe-pipe.html), поэтому, вероятно, нет. Тем не менее, вы можете подклассифицировать или создать свою собственную трубу. – jonrsharpe