私はJQuery経由で電子メールの入力を検証しようとしています:
私のJQuery
<script>
/* <![CDATA[ */
jQuery(function(){
$( ".mail" ).keyup(function() {
var VAL = $(this).val();
var email = new RegExp(^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$);
if(VAL.test(email)){
alert('Great, you entered an E-Mail-address');
}
});
});
/* ]]> */
</script>
[email protected]と入力しても、これは警告を発しません。すでに.test()と.match()を試しましたが、何が間違っていましたか?
//
構文を使用して正規表現を作成しますregex.test(string)
ではなく、string.test(regex)
を呼び出しますそう
jQuery(function () {
$(".mail").keyup(function () {
var VAL = this.value;
var email = new RegExp('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$');
if (email.test(VAL)) {
alert('Great, you entered an E-Mail-address');
}
});
});
これに変更します。
var email = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
これは、大文字小文字を区別しないことを意味するi
フラグが渡される正規表現リテラルです。
電子メールアドレスの検証はhard(これを示す正規表現の習得の最後に4ページまたは5ページの正規表現があります)であり、表現がすべての有効な電子メールアドレスをキャプチャするわけではないことに注意してください。