- ベストアンサー
テキストボックスに数字しか入力できないようにするには?
タイトルの通りなのですが、あるテキストボックスに数字しか入力できないようにしたいのですが可能でしょうか?また、 「あいうえお 12345 「」:・、¥・」 というような文字列をコピーし、そのテキストボックスにペーストした際にも数字の12345だけが残るといった事も実現したいのですが… どなたかご存知の方いらっしゃいましたら教えて頂けると幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>英数字 では、こんな感じで <input type="text" onKeyup="this.value=this.value.replace(/[^0-9a-z]+/i,'')">
その他の回答 (3)
- nda23
- ベストアンサー率54% (777/1415)
英数字の場合は以下のように修正します。 function onlyAlphaNumeric() { var k = event.keyCode; if ( k == 9 || k == 13 ) return; //タブ、リターン if ( k >= 48 && k <= 57 ) return; //数値 if ( k >= 65 && k <= 90 ) return; //英大文字 if ( k >= 97 && k <= 122 ) return; //英小文字 event.returnValue = false; //上記以外はキー入力を取り消す } function replaceAlphaNumeric(txt) { txt.value = txt.value.replace(/[^\da-z]/gi,""); }
- nda23
- ベストアンサー率54% (777/1415)
以下は一例です。 <SCRIPT LANGUAGE="JavaScript"> function onlyNumeric() { var k = event.keyCode; ( k == 9 || k == 13 || ( k >= 48 && k <= 57 )) return; event.returnValue = false; } function replaceNum(txt) { txt.value = txt.value.replace(/\D/g,""); } </SCRIPT> <INPUT TYPE=TEXT OnKeyPress="onlyNumeric()" OnBlur="replaceNum(this)"> キー入力では数字、TAB、RETURN のみ受け入れます。 但し、コピペされると非数字でも入力されます(キー押下でないため) フォーカスが移動すると、非数字を削除します。 正規表現の構文は以下の通り。 http://msdn.microsoft.com/ja-jp/library/cc392020.aspx
- yambejp
- ベストアンサー率51% (3827/7415)
たとえば <input type="text" onKeyup="this.value=this.value.replace(/[^0-9]+/,'')">
お礼
すごいです(>_<)ありがとうございます! ちなみになんですが、数字限定ではなく英数字といった事はできるんでしょうか? 教えて頂いたもののしくみがよくわかっていないド素人ですみません 汗