私はユーザーが1ドルの金額で入金を入力する小さなフォームを持っています。この金額は正または負の値を取ることができます。偶然に文字や文字が入力されないようにキーを押すたびに、フォームを検証しようとしています。JavaScript onkeyup正規表現
は、以下の機能を考えてみましょう:
var deposit = document.getElementById("deposit");
deposit.onkeyup = function() {
var PATTERN = /\d$/;
if (!deposit.value.match(PATTERN)) {
deposit.value = deposit.value.replace(deposit.value.slice(-1), "");
}
}
あなただけのユーザーが数字を入力できるようにしたい場合、これは結構な動作します。他の文字は単に消去されます。私が問題を抱えているところでは、正または負の通貨(ドル記号なし)と一致するようにオンザフライで動作するパターンが登場しています。ユーザーは、オプションのマイナス記号、少なくとも1つの数字、小数点、2つの数字の順に入力する必要があります。
例の預金額:
0.09
100.45
4032.34
-0.90
-54.56
-1353.00
パターンを思い付く助け、あるいはもっと良い方法があれば、大歓迎です。詳細が必要な場合はお知らせください。
あなたの機能を置き換えるには欠陥があります。 'keyup'イベントが発生すると、複数の文字が入力フィールドに入力されている可能性があります。ユーザーが最後にキャレットを置かず、関数もまた破損する可能性があります。 –