0

バリデーターが「@」記号を見つけた場合に、電子メールが有効かどうかを確認するメソッドを作成する方法は? (入力テキストは、名前またはメールアドレスのみです)。

4

2 に答える 2

3
function checkMail(email){
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (filter.test(email)) {
        return true;
    }
    return false;
}

checkMail('me@domain.com'); // return true or false if invalid.

有効なドメインが書き込まれている場合、これにより電子メールアドレスがさらにチェックされます。

me@something --> 無効な
@something.com --> 無効な
me@.com --> 無効な
me@something.com --> 有効

正規表現ライブラリ -->

jQuery Validation Engine を使用してメール アドレスを検証する場合は、以下を追加するだけです。

data-validation-engine="validate[required,custom[email]]"

入力欄へ。


Form Validation Engine 1.6.4 以降、検証用に独自の関数を追加する可能性があります: http://www.position-absolute.com/news/form-validation-engine-1-6-4/

例のコードをこれに置き換えると、動作するはずです。

<input value="" data-validation-engine="validate[required,funcCall[nameOrMail]]" class="text-input nameOrMail" type="text" name="req" id="req" />

JS (あなたへ<head>):

jQuery(document).ready(function(){
    jQuery("#formID").validationEngine({
        "nameOrMail": {
            "nname":"nameOrMail"
        }
    });
});

function checkMail(email){
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (filter.test(email)) {
        return true;
    }
    return false;
}

function nameOrMail(){
    if($(".nameOrMail").val().indexOf('@') >= 0){
        if(!checkMail($(".nameOrMail").val())) {
            return "Please enter a valid mail address or name!";
        }
    } else {
        if($(".nameOrMail").val() === '') {
            return "Please enter a valid mail address or name!";
        }
    }
}

ライブデモ: http://jsfiddle.net/4dUyX/

于 2012-06-05T10:23:07.647 に答える
0

分割関数を使用すると、正規表現は必要ありません

<script>
function check(email){
    if (email.split("@").length>0) {
        return true;
    }
   else return false;
}

check('jfvh@yahoo.com'); </script>
于 2012-06-05T10:26:31.590 に答える