入力フィールドを検証し、条件に一致しないものを入力できないようにするJavaScript関数があります。この機能はevent.keyCode
に基づいています。私は正規表現を使用するために機能を変更しようとして検証してい無効なユーザー入力を防ぐためのRegExpによる数値検証
ない「文字ごと」ではなく「全体入力あたり」それは同じないことが、さまざまな条件を持つので:
- 数値のみ
- 10進数を許可しました。 "または「」
はここevent.keyCode
を使用して、現在の形での関数である:あなたが望む検証の種類を行うために
function isNumeric(evt, alertDIVid, alertMsg) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode >= 48 && charCode <= 57) {
document.getElementById(alertDIVid).innerHTML = '';
return true;
}
else {
document.getElementById(alertDIVid).innerHTML = alertMsg;
return false;
}
}
document.getElementById('AMNT').onkeypress = function(event) {
event = event || window.event;
return isNumeric(event, 'numericalert', 'Numeric values only!')
};
これは小数点の区切り記号として追加された '、'を除いて、[あなたの前の質問](http://stackoverflow.com/questions/8821272/numeric-values-only)とほとんど同じです。または私は何かを逃していますか? – PPvG
これは似ていますが、条件が一致しないと入力を拒否する方法がわかりません... – ihtus
なぜそれに対してRegExを使用しますか?許可された文字の配列を作成し、その文字に対してすべての新しい文字をテストするだけで、完全に単純で論理的です。 RegExを使ってこの仕事をすると、飛んでいるボールでフライを振り払います。 – Hubro