0

javascriptを使用して電子メールアドレスを検証しようとしています。問題は、ifステートメントが正しく実行されていないことです。'elseステートメント'を削除すると、コードは正しく実行され、ページはエラーでロードされません。'elseステートメント'を含めると、elseステートメントは実行されず、ステータスバーにページがエラーで読み込まれることが示されます。誰かが私が拾うことができないエラーを見つけることができるかどうか疑問に思いましたか?

<h4>Example 4:</h4>
<div style="border:3px dashed #aaa; width:200px;">
    <div id="text">e-mail: <input id="email" onblur="verifyEmail()"/></div>
    <div id="verification" > </div>
</div>

<script type="text/javascript">
function verifyEmail(){
    var email = document.getElementById("email").value;
    var atPos=0;
     var dotPos=0;

    atPos = email.indexOf("@");
    dotPos = email.lastIndexOf(".");

    if(atPos<=3 || dotPos<atPos+2 || dotPos+2>=email.length){
        document.getElementById("verification").innerHTML = "Invalid E-mail Address";
    }else{
        document.getElementById("verification").innerHTML = "Valid";
    }

}



</script>
4

2 に答える 2

2
<script language="javascript">
function checkEmail() {
var email = document.getElementById('emailaddress');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}
</script>

詳細: http://www.marketingtechblog.com/javascript-regex-emailaddress/#ixzz1wqetPJQQ

于 2012-06-04T17:54:36.640 に答える
1

これを試して

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA
-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
} 

デモ:デモはこちら

または、より簡単な方法は

function validateEmail(email) 
{
    var re = /\S+@\S+\.\S+/;
    return re.test(email);
}

HTML5をお使いの方は<input type="email"...ご注意ください。これは、入力が送信ボタンのあるフォームタグにあり、JS によって処理されない場合に機能します

<input type="email" placeholder="me@example.com">
于 2012-06-04T17:54:50.547 に答える