1

Jqueryのvalidateプラグインを使用できない状況にあります。だから私はカスタムバリデーターを書きました。しかし、何らかの理由でテスト機能が動作していません。

コードは行まで正常に実行されています if (format.test(email)) {。あなたの知識を共有してください。前もって感謝します

$(document).ready(function () {
    $("#MainContent_btnSubmit").click(function () {
        validateEmail();

    });
});






function validateEmail() {

    var format = "[a-zA-Z._0-9]@[a-zA-Z.0-9].[a-zA-Z]";
    var email = $("#MainContent_txtEmail").val();


    if (format.test(email)) {
        alert("Correct Email");
    }
    else {
        alert("Wrong Email");
    }
4

5 に答える 5

3

まず、正規表現は文字列として書き込まれません。それらには独自のリテラル型があります。

var format = /[a-zA-Z._0-9]@[a-zA-Z.0-9].[a-zA-Z]/;

次に、すべての文字クラスが1つの文字にのみ一致します。また、.エスケープしない場合、aはワイルドカードです。また、のサブストリングがパターンを満たすtest場合はtrueを報告します。したがって、パターンを固定emailする必要があります。あなたはおそらくこのようなことを意味しました:

var format = /^[a-zA-Z._0-9]+@[a-zA-Z.0-9]+\.[a-zA-Z]+$/;

第三に、有効な電子メールアドレスを照合することはあなたが思っているより難しいです。

于 2012-11-26T09:33:09.770 に答える
2

formatオブジェクトである必要がありRegExpます:

var format = new RegExp("[a-zA-Z._0-9]@[a-zA-Z.0-9].[a-zA-Z]");

さらに、値に電子メールのみを含める必要があると思われるため、アンカーを使用します。

var format = new RegExp("^[a-zA-Z._0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z]+$");
于 2012-11-26T09:32:14.180 に答える
2

正規表現を使用して、それを使用して正規表現"^[a-zA-Z._0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z]+$"オブジェクトを作成できます

于 2015-12-03T07:22:33.207 に答える
0

これがコピーアンドペーストエラーかどうかはわかりませんが、関数コードを見ると、関数を閉じていないことがわかります。validateEmail()

于 2012-11-26T09:33:56.660 に答える
0

私はあなたがこのように上部にjqueryプラグインを見逃していると思います:

<script src='path-to-your-jQuery-plugin' type='text/javascript'></script>

また

function validateEmail() {

var format = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
var email = $("#MainContent_txtEmail").val();


    if (format.test(email)) {
        alert("Correct Email");
    }
    else {
        alert("Wrong Email");
    }
}    // in your code here you missed the closing tag of the function
于 2012-11-26T09:34:10.013 に答える