【问题标题】:regular-expressions for email validation [duplicate]电子邮件验证的正则表达式 [重复]
【发布时间】:2014-12-09 21:03:37
【问题描述】:

我正在制作密码和电子邮件页面,需要使用 reg-ex 验证电子邮件。 我的问题是我使用的 reg-ex 只会在 @ 符号之后验证,在那之后所有电子邮件都是有效的,我需要一个完整的证明 reg-ex 来验证并确保它是“.com”或英文替代品(拼写检查不会接受)最后有人可以帮忙吗?

我的代码给任何需要它的人:

    <script type="text/javascript">

     function checkForm(form)
    {
    if(form.email.value == "") {
      alert("Error: Username cannot be blank!");
      form.email.focus();
      return false;
    }
    re = /^\w+$/;
    if(!re.test(form.email.value)) {
      alert("Error: Username must contain only letters, numbers and underscores!");
      form.email.focus();
      return false;
    }

    if(form.pwd1.value != "" && form.pwd1.value == form.pwd2.value) {
      if(form.pwd1.value.length < 6) {
        alert("Error: Password must contain at least six characters!");
        form.pwd1.focus();
        return false;
      }
      if(form.pwd1.value == form.email.value) {
        alert("Error: Password must be different from Username!");
        form.pwd1.focus();
        return false;
      }
      re = /[0-9]/;
      if(!re.test(form.pwd1.value)) {
        alert("Error: password must contain at least one number (0-9)!");
        form.pwd1.focus();
        return false;
      }
      re = /[a-z]/;
      if(!re.test(form.pwd1.value)) {
        alert("Error: password must contain at least one lowercase letter (a-z)!");
        form.pwd1.focus();
        return false;
      }
      re = /[A-Z]/;
      if(!re.test(form.pwd1.value)) {
        alert("Error: password must contain at least one uppercase letter (A-Z)!");
        form.pwd1.focus();
        return false;
      }
    } else {
      alert("Error: Please check that you've entered and confirmed your password!");
      form.pwd1.focus();
      return false;
    }

    alert("You entered a valid password: " + form.pwd1.value);
    return true;
  }

   </script>

   <form ... onsubmit="return checkForm(this);">
   <p>email: <input type="email" name="email"></p>
   <p>Password: <input type="password" name="pwd1"></p>
   <p>Confirm Password: <input type="password" name="pwd2"></p>
   <p><input type="submit"></p>
   </form>

【问题讨论】:

标签: regex validation email-validation


【解决方案1】:

real regex to properly validate email addresses according to the spec is massive, 可能不是您真正想要做的。请记住,.NET、.COM、.TRAVEL、.CA 和 many many more 是有效的顶级域,可以向它们发送电子邮件。

相反,请考虑进行非常简单的正则表达式验证(检查 @ 符号)并发送验证电子邮件以确认电子邮件地址有效。依靠用户正确输入他们的发疯邮件。

this relevant Programmers discussion

【讨论】:

    猜你喜欢
    • 2015-12-20
    • 2010-10-30
    • 1970-01-01
    • 2011-06-24
    • 2015-07-04
    • 2012-10-03
    • 2016-11-15
    • 1970-01-01
    • 2014-03-02
    相关资源
    最近更新 更多