個人の入力詳細を入力するための入力ボックスを作成したいと思います。最初の文字はAまたはEで、残りは英数字で、特殊文字は使用できません。誰も特殊文字を入力せず、最初の文字がAまたはEである必要があることを確認する必要があります(すべてクライアント側でチェックする必要があります)
誰かが私に進む方法を教えてもらえますか
個人の入力詳細を入力するための入力ボックスを作成したいと思います。最初の文字はAまたはEで、残りは英数字で、特殊文字は使用できません。誰も特殊文字を入力せず、最初の文字がAまたはEである必要があることを確認する必要があります(すべてクライアント側でチェックする必要があります)
誰かが私に進む方法を教えてもらえますか
keydown
イベントと一緒に、JavaScriptで正規表現を調べてください。キーダウンイベントに関数をアタッチし、この関数内で入力ボックスが一致することを確認してから、必要に応じて続行できます。
このようなもの:(テストされていません)
<script>
function checkInput() {
var inputToCheck = document.getElementById('my_input');
if (!inputToCheck.value.match(/[AE]\w+/)) {
// do something here, like alert them or remove special characters with .replace
}
}
</script>
<input id="my_input" onkeydown="checkInput();" />
これが検証する唯一のフィールドである場合、Leonard Challisが書いたように(ただし、キーアップイベントで)jsとregexpを使用して自分で記述します。
サイトにたくさんのフィールドがあり、おそらく複数のフォームがある場合は、フレームワークを検討します。これはかなり良いです:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
それを使用する場合は、特別なニーズに合わせてカスタム関数を作成できます。http://docs.jquery.com/Plugins/Validation/Validator/addMethod#namemethodmessage
これは宿題のように聞こえます(具体的には「E」または「A」で始まるのは非常に人工的に聞こえるので)。最初にタスクの解釈を決定することをお勧めします。「E」と「A」は大文字と小文字を区別せずに解釈する必要がありますか?「英数字」とは正確にはどういう意味ですか?たとえば、「Σ」または「Я」または「١」は英数字ですか?クライアント側でチェックを行うことが目的の場合、JavaScriptが無効になっているときにページを完全に機能しないようにする必要がありますか、それとも可能な限りクライアント側でチェックを行う必要がありますか?(後者の場合、pattern
HTMLで属性を使用することを検討してください。一部の最新のブラウザーでは、JavaScriptが無効になっている場合でもチェックが実行されます。)