Я использовал валютную трубу для форматирования ввода, но я получаю .00
, когда выхожу из полей ввода, но я хочу $ 1,000,000 (без десятичных знаков, включая запятые, если необходимо, и знак $), но теперь я получится так, если я наберу 1000000, и он будет отображаться как $ 1,000,000.00, но я хочу, чтобы это было $ 1,000,000.
HTML:
<input type="text" class="form-control" placeholder="Amount in dolars"
formControlName="amount" autocomplete="off" currencyInput maxDigits="9">
Директива:
private regexString(max?: number) {
const maxStr = max ? `{0,${max}}` : `+`;
return `^(\\d${maxStr}(\\.\\d{0,2})?|\\.\\d{0,2})$`
}
private digitRegex: RegExp;
private setRegex(maxDigits?: number) {
this.digitRegex = new RegExp(this.regexString(maxDigits), 'g')
}
ngOnInit() {
this.el.value = this.currencyPipe.transform(this.el.value, 'USD');
}
@HostListener("focus", ["$event.target.value"])
onFocus(value) {
// on focus remove currency formatting
this.el.value = value.replace(/[^0-9.]+/g, '')
}
@HostListener("blur", ["$event.target.value"])
onBlur(value) {
// on blur, add currency formatting
this.el.value = this.currencyPipe.transform(value, 'USD');
}
Во время копирования и когда мы выйдем, даже в этот раз, я хочу, чтобы формат был таким, как упомянуто, но я попытался использовать символ: "1-0.0" и все, но ничего не работало.
Пожалуйста, помогите
DEMO