【问题标题】:RegEx of email address with additional domains with JQuery Vaildate带有 JQuery Validate 的附加域的电子邮件地址的正则表达式
【发布时间】:2012-05-31 21:09:05
【问题描述】:

我需要验证具有额外域的电子邮件地址。我目前验证了一封带有@email.com 的普通电子邮件,但我需要验证一封带有@email.email.com 的电子邮件。我对 RegEx 不够熟悉。

$.validator.addMethod('matches', function (value, element, param) {
    return this.optional(element) || value.match(param);
},
'Please enter a valid value.');

$(function() {

 $("form").validate({

            rules: {
                email: {
                    required: true,
                    email: true,
                    matches: '.+@email.com'
                }
            }, messages: {
                email: {
                    matches: 'Must be a email.com e-mail address.'
                }
            }
        });
  });

【问题讨论】:

  • @Andreas - 您应该将其发布(并附上简短说明)作为答案。我的简短回答:不要费心使用正则表达式来“验证”电子邮件地址,因为(1)你会弄错并排除有效的电子邮件地址(就像 xvatar 在那个答案中所做的那样)和(2)你必须无论如何发送确认测试消息。
  • @Andreas - 谢谢,但我已经知道这些网站了。我只是无法收到@testemail.com 而不是@test.email.com 的电子邮件
  • @StephenP - 我有一种特定风格的电子邮件,我需要匹配它并不像看起来那么糟糕。

标签: javascript regex jquery-validate


【解决方案1】:

要将任何(通常的)电子邮件与两部分顶级域匹配,例如*@google.co.uk,您可以使用匹配域部分中的 2-3 个单词部分的正则表达式:

var emailRegExp = /[a-zA-Z0-9._-]@[a-zA-Z0-9-]+\.\w+(\.\w+)?/
...
// in your code
matches: emailRegExp

RegExp 解释:

  • 名称部分[a-zA-Z0-9._-] 将匹配任何常用字符,以及._-

  • 域名部分[a-zA-Z0-9-]与名称大致相同,但没有._

  • 1234563 /p>

RegExp 很短。 如果您真的对正确的电子邮件验证感兴趣,您应该查看RFC822-Spec (SCNR :D)

【讨论】:

  • 我只是想验证一个特定的电子邮件。
  • 那么也许xvatar的答案就是你要找的。​​span>
  • 是的,jquery validate 已经验证了电子邮件地址,但我正在尝试验证它是否是内部电子邮件。
【解决方案2】:

这适用于 jquery validate 来验证电子邮件是否属于组织。我真的很接近,但我认为它不需要一些东西。

(.+@+[A-Za-z0-9._-]+\\.email.com$)|(.+@email.com$)

【讨论】:

    猜你喜欢
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多