ユーザーがドルの金額しか入力できないように、入力を制限する必要があります。これは、数字の文字列を入力できることを意味し、オプションで小数点と 0 ~ 2 桁の数字が続きます。カンマもドル記号もありません。
これに適したパターンだと思うものを見つけましたが、ユーザーがバックスペース、Enter、タブなどを使用できるようにしたいと考えていました。ホワイトリストにすべての有効なキーコードを明示的にリストするよりも、これを行うためのより良い方法を望んでいました。私はそれがうまくいくことを望んで/\W/
いましたが、残念ながら、あまりにも多くのキープレスに一致します。
これは私が現在持っているものです。
$input.keypress(function(evt) {
var ch = String.fromCharCode(evt.which);
var val = evt.target.value + ch;
var pattern = /^\d+(\.?(\d{1,2})?)$/;
if (!pattern.test(val)) {
evt.preventDefault();
}
});
ユーザーが修正を行ったり、キーボードを使用してフォームをナビゲートしたりできるスマートでクリーンな方法があれば、それを聞いてうれしいです.
上記の正規表現を改善するための提案がある場合は、それを回答に含めてください (回答がない場合はコメントに残してください)。
ありがとう!