Попытка проверить электронную почту, используя JavaScript - PullRequest
1 голос
/ 16 сентября 2011

У меня небольшие проблемы с корректной работой следующего кода в моем скрипте:

if (email == "") {
    $("#field2 .error1").show();
    $("input#email").focus();
    return false;  
    }
else if(email != /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/) {
    $("#field2 .error2").show();
    $("input#email").focus();
    return false;  
    }

В основном у меня есть форма на моей странице, и она проверяет пару полей с помощью внешнего файла js. Я хочу проверить, не заполнено ли поле электронной почты или оно не соответствует регулярному выражению. Если оно пустое, оно возвращает .error, а если оно не соответствует регулярному выражению, я хочу, чтобы оно показывало .error2.

Что происходит, так это то, что он показывает ошибки, но даже если я введу правильный адрес электронной почты, он не будет проверен и просто продолжит показывать .error2. Я довольно озадачен тем, что мне здесь не хватает, поэтому любая помощь будет оценена.

Даже если я попробую это,

if (email == "" || email != /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/) {
    $("#field2 .error1").show();
    $("input#email").focus();
    return false;  
    }

Я до сих пор не могу заставить его отправить форму ???


ОК. Итак, я попробовал это, и похоже, что оно работает правильно. Это выглядит правильно? Поэтому я приму к сведению строку regx и воспользуюсь лучшей, это было больше, чтобы заставить ее работать как задумано.

var email = $("input#email").val();
var regx = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/;   
if (email == "") {
    $("#field2 .error").show();
    $("input#email").focus();
    return false;  
}
else if (!regx.test(email)){
    $("#field2 .error2").show();
    $("input#email").focus();
    return false;
}

Ответы [ 4 ]

2 голосов
/ 16 сентября 2011

Попробуйте это

    var 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;

if(regexp.test(email)){
   // matched
  }else{
   // not matched
   }
0 голосов
/ 07 февраля 2013

Вот попробуй эту голову:

<script type="text/javascript">
function validateEmail(theForm) {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(theForm.email-id.value))
    {
        return(true);
    }
    alert("Invalid e-mail address! Please enter again carefully!.");
    return(false);
}
</script>

Тело:

<form onSubmit="return validateEmail(this);" action="">
E-mail Address:
    <input type="text" name="emailid" />
    <input type="submit" value="Submit" />
    <input type="reset" value="Reset" />
</form>
0 голосов
/ 16 сентября 2011

То, что вы сравниваете, является регулярным выражением.

 var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/;

 if (!filter.test($("input#email").val())) 
 {

    // invalid email

 }
 //valid email
0 голосов
/ 16 сентября 2011

вам нужно сделать вот так,

 var regx=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/  // create your regular expresseion

 if(regx.test(email)){// use test() method to do the match
   // do if match
  }else{
   // not matched
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...