1

以下のコードを使用してメールを検証しようとしていますが、現在、メールをテストして正規表現と一致するかどうかを確認していますが、有効なメールを入力してもエラーがアクティブになり、ページが送信されません

    $('#emailsubmit').submit(function() {
    var email = new RegExp(/^(([^<>()[\]\\.,;:\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,}))$/);


    if (!("#emailAddr").match(email)) {
        $("#errormsg").html("Please insert a valid email");
        $("#errormsg").show();

         var emailaddr = $("#emailAddr").val();

        alert(emailaddr);
        return false;
    } 

});
4

3 に答える 3

0

これは私のスクリプトで、しばらく使用してきました...うまく機能し、郵便番号やその他のフォームフィールドの入力もチェックします。

function checkEmail(e_mail) {
  var str = new String(e_mail);
  var biz_name = document.myForm.biz_name;
  var zip_code = document.myForm.zip_code;
  var e_mail = document.myForm.e_mail;
  var str2 = new String(zip_code);
  var terms = document.myForm.terms;

      if (biz_name.value == "")
    {
        window.alert("Oops. Please enter your business name!");
        biz_name.focus();
        return false;
    }
    if (zip_code.value == "")
    {
        window.alert("Oops. Please enter your business zip code!");
        zip_code.focus();
        return false;
    }
    if (e_mail.value == "")
    {
        window.alert("Oops. Please enter your email address!");
        e_mail.focus();
        return false;
    }
    if (terms.checked == false)
    {
        window.alert("Oops. Please agree to the terms and conditions!");
        terms.focus();
        return false;
    }
  var isOK = true;

  rExp = /[!\"£$%\^&*()-+=<>,\'#?\\|¬`\/\[\]]/
  if( rExp.test(str) )
    isOK = false;
  if( str.indexOf('.') == -1 || str.indexOf('@') == -1 )
    isOK = false;
  if( str.slice(str.lastIndexOf('.')+1,str.length).length < 2 )
    isOK = false;
  if( str.slice(0,str.indexOf('@')).length < 1 )
    isOK = false;
  if( str.slice(str.indexOf('@')+1,str.lastIndexOf('.')).length < 1 )
    isOK = false;
  if( !isOK )
    alert( "Oops! A valid email is needed.  Check it and try again!" );
    e_mail.focus();

  return isOK;
}
于 2013-07-09T00:05:20.503 に答える