4

ページの入力フィールドに文字が含まれているかどうかを確認する必要があります。

@これは非常に基本的な電子メールアドレスの検証用であるため、テキストが空ではなく、文字が含まれているかどうかのみを確認したいと思います.

私はこのように試みてきました:

if (($("." + parentname.attr("class") + " #email").val().contains("@")) && ($("." + parentname.attr("class") + " #email").val().contains(".")))
{
    email = 1;
}

の値を想定するとme@this.com、このコードは次のエラーをスローします。

オブジェクトme@this.comには「含む」メソッドはありません

そこで、いくつかの調査を行ったところ、.containsはDOMオブジェクト用であり、これを試すことを提案する文字列ではないことがわかりました。

if (($("." + parentname.attr("class") + " #email").val().IndexOf("@") != -1) && ($("." + parentname.attr("class") + " #email").val().IndexOf(".") != -1))
{
    email = 1;
}

同様のエラーが発生します。

オブジェクトme@this.comにはメソッド'IndexOf'がありません

私が作成した別のサイトで次のコードが希望どおりに機能することを考えると、基本的にここではアイデアがありません。

if ($("#contact-email").val().contains("yahoo.com")) {
    $(".errmsg").text("Domain yahoo.com has been banned due to excessive spam, please use another domain.");
}

誰かが私が試すことができる他のこと、またはもっと良いことに、これを適切に行う方法を提案できますか?

4

4 に答える 4

4

indexOf最初は大文字のIを使用しません。代わりにこれを試してください:

if (($("." + parentname.attr("class") + " #email").val().indexOf("@") != -1) && ($("." + parentname.attr("class") + " #email").val().indexOf(".") != -1))
{
  email = 1;
}
于 2013-02-21T09:55:53.557 に答える
3

Javascriptでメールを検証する機能があります:

function isEmail(emailV){
    if(emailV != null && emailV != undefined){
        var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
        return pattern.test(emailV);    
    }
    else{
        return false;
    }

}

メールで許可されているすべての文字を検証し、次のように呼び出すだけです。

if(isEmail($("#contact-email").val())){
   //EMAIL IS VALID
}
else{
   //EMAIL IS NOT VALID
}
于 2013-02-21T09:55:45.950 に答える
0

メソッドはindexOfの代わりになりIndexOfます。コードを修正すると、チャームのように機能するはずです:)。

このコードスニペットを試してください:

if (($("." + parentname.attr("class") + " #email").val().indexOf("@") !== -1) 
    && ($("." + parentname.attr("class") + " #email").val().indexOf(".") !== -1))
{
    email = 1;
}
于 2013-02-21T09:57:17.453 に答える
0

LIVE DEMO

// VISUALIZE ERRORS
function showError(el, err){
    return err ?  $(el).addClass('error') :  $(el).removeClass('error');
}

// REGEXES
var isValidEmailAddress = function( emailAddress ) {
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
    return pattern.test(emailAddress);
};

// "EMAIL"
function validate_email( el, val ){
    var err = !isValidEmailAddress( val );
    showError(el, err);
}

$('#email').on('input', function(){
  validate_email( this, this.value );
});
于 2013-02-21T10:09:23.073 に答える