は、ここでも、イオンに働くフォーマットの私のバージョンです。
活字体:
format(valString) {
if (!valString) {
return '';
}
let val = valString.toString();
const parts = this.unFormat(val).split(this.DECIMAL_SEPARATOR);
return parts[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, this.GROUP_SEPARATOR) + (!parts[1] ? '' : this.DECIMAL_SEPARATOR + parts[1]);
};
unFormat(val) {
if (!val) {
return '';
}
val = val.replace(/^0+/, '');
if (this.GROUP_SEPARATOR === ',') {
return val.replace(/,/g, '');
} else {
return val.replace(/\./g, '');
}
};
はHTML:
<ion-input [(ngModel)]="budget" pattern="^[$\-\s]*[\d\,]*?([\.]\d{0,10})?\s*$"
style="border:1px solid black" #myBudget="ngModel" (input)="budget = format(budget)"></ion-input>
<p style="color:red" *ngIf="myBudget.errors && myBudget.errors?.pattern">Enter numbers only</p>
それは(それは '$' 記号をリード受け入れる)エラー管理と通貨の他にいくつかの改善を必要としています。私は10進数の数字を受け入れるように正規表現を設定しました。
DEMO
あなたは何の小数と数字のみの入力を希望しない場合は、このDEMOは方法を示しています。
パイプを使用できませんか? –
これは '入力ボックス '用です。入力フィールドに 'pipe'を使うことはできません。すでに存在するテキストのみを書式設定しています。ユーザーが '数値'の内容を 'input'ボックスに入力している間に、それをフォーマットする必要があります。 @TheDictator – Sampath
私は私のフォーマット指令のionicのクイックバージョンを書いた。あなたは一見をしたいのですか、または図書館を好むでしょうか? – Vega