Tôi đã thử các giải pháp ở trên nhưng giá trị đi đến mô hình là giá trị được định dạng sau đó trả về và đưa cho tôi các lỗi tiền tệ. Vì vậy tôi đã phải
[ngModel]="transfer.amount | currency:'USD':true"
(blur)="addToAmount($event.target.value)"
(keypress)="validateOnlyNumbers($event)"
Và về chức năng của addToAmount -> thay đổi khi bị mờ khiến ngModelChange gây ra cho tôi các vấn đề về con trỏ.
removeCurrencyPipeFormat(formatedNumber){
return formatedNumber.replace(/[$,]/g,"")
}
Và loại bỏ các giá trị không số khác.
validateOnlyNumbers(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}