Здравствуйте, я пытаюсь создать средство форматирования чисел в поле ввода.
Он отлично работает, когда я набираю числа, но когда я набираю другие символы, кажется, что NgModel не заботится о моих изменениях, и как только когда я снова набираю номер, все символы non di git снова исчезают. Может ли кто-нибудь мне помочь?
требуемое поведение -> ввод: "dawdhawdhwa", вывод: "0kr"
ввод: "50000", вывод: "50 000 kr"
ввод: "5219319231", вывод: "5 219 319 231 крон"
ввод: "dawh2133kdaw5", вывод: "21 335 крон"
Исходный код:
import { Component, Input, PipeTransform, Pipe } from '@angular/core';
@Pipe({
name: 'numberFormat'
})
export class NumberFormatPipe implements PipeTransform {
transform(value: any, args?: string[]): any {
if(!value) {
value = "0";
}
value = value.replace(/[^0-9.]/g, "");
return parseFloat(value as string).toLocaleString('sv') + (args ? args[0] : "");
}
}
@Component({
selector: 'app-input',
template: `
<div >
<input
[ngModel]="value | numberFormat: [' kr']"
(ngModelChange)="value = $event"
type="text"
/>
</div>
`,
})
export class InputComponent {
value: string
constructor() {
}
ngOnInit(): void {
}
}