电子邮件无效的正则表达式

时间:2016-06-29 06:29:02

标签: javascript regex

我正在对电子邮件字段进行验证,但即使电子邮件的格式正确,也会显示无效错误。

Screenshot

代码

<script type="text/javascript">
function formvalidate(){
    var email=document.signup_form.email.value;

    var check_email= RegExp("^[A-Z0-9._-]+@[A-Z0-9.-]+\.[A-Z0-9.-]+$");

    if(email=="")
    {
        alert("cannot be empty!");
        document.signup_form.email.focus();
        return false;
    }

    else if(!check_email.test(email))
    {
        alert("enter valid email address!");
        document.signup_form.email.focus();
        return false;
    }
    else
    {
        return true;
    }
}

</script>

由于

9 个答案:

答案 0 :(得分:2)

1-对于正则表达式,请使用此代码

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

2-此行if (!check_email.test(email))已更改为

if (check_email.test(email))

答案 1 :(得分:0)

试试这个功能

     function isEmail(inputString) {
     var regExpEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
         try {
              return regExpEmail.test(inputString.value);
             }
        catch (e) {
              return false;
               }

}

答案 2 :(得分:0)

var check_email= RegExp("^[A-Z0-9._-]+@[A-Z0-9.-]+\.[A-Z0-9.-]+$");更改为 像这样的函数:

function validateEmail(email) {
    var re = /^(([^<>()\[\]\\.,;:\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,}))$/;
    return re.test(email);
}

答案 3 :(得分:0)

你的正则表达式是不正确的,有很多你没有考虑的事情,比如你的正则表达式只接受大写字母,包括你应该使用的大写和小写字母:

[a-zA-Z0-9]

不是这个:

[A-Z0-9]

您可以使用此正则表达式验证电子邮件:

/^(([^<>()\[\]\\.,;:\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,}))$/

阅读this了解详情

答案 4 :(得分:0)

Source和一些tests

您可以将此正则表达式用于电子邮件:

RegExp('\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b', 'i')

答案 5 :(得分:0)

尝试此功能

Finish

请参考这个小提琴:http://jsfiddle.net/gabrieleromanato/Ra85j/

答案 6 :(得分:0)

尝试此示例:email validation using JQuery

&#13;
&#13;
function validateEmail(email) {
  var re = /^(([^<>()[\]\\.,;:\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,}))$/;
  return re.test(email);
}

function validate() {
  $("#emailvalidate").text("");
  var email = $("#email").val();
  if (validateEmail(email)) {
    $("#emailvalidate").text(email + " is valid");
    $("#emailvalidate").css("color", "green");
  } else {
    $("#emailvalidate").text(email + " is not valid");
    $("#emailvalidate").css("color", "red");
  }
  return false;
}
$("form").bind("submit", validate);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <p>Enter an email address:</p>
  <input id='email'>
  <button type='submit' id='btn'>Validate</button>
</form>
<h2 id='emailvalidate'></h2>
&#13;
&#13;
&#13;

答案 7 :(得分:0)

试试这段代码 -

function formvalidate()
{
    var email = document.signup_form.email.value;

    var check_email = RegExp("^([a-z0-9\\+_\\-]+)(\\.[a-z0-9\\+_\\-]+)*@([a-z0-9\\-]+\\.)+[a-z]{2,6}$", 'ig');

    if(email == "")
    {
        alert("cannot be empty!");
        document.signup_form.email.focus();
        return false;
    }

    else if(!check_email.test(email))
    {
        alert("enter valid email address!");
        document.signup_form.email.focus();
        return false;
    }
    else
    {
        return true;
    }
}
<form name="signup_form">
  <input type="text" name="email" value="" />
  <input type="button" name="validate" value="Validate" onclick="formvalidate()"/>
</form>

答案 8 :(得分:0)

将正则表达式更改为

^[a-zA-Z0-9._-]+@[A-Za-z0-9.-]+\.[a-zA-Z0-9.-]+$

希望这会有所帮助:)