Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有JQuery Vaildate的其他域的电子邮件地址的正则表达式_Javascript_Regex_Jquery Validate - Fatal编程技术网

Javascript 带有JQuery Vaildate的其他域的电子邮件地址的正则表达式

Javascript 带有JQuery Vaildate的其他域的电子邮件地址的正则表达式,javascript,regex,jquery-validate,Javascript,Regex,Jquery Validate,我需要验证带有额外域的电子邮件地址。我当前使用@email.com验证普通电子邮件,但我需要验证具有@email.email.com的电子邮件。我对正则表达式不够熟悉 $.validator.addMethod('matches', function (value, element, param) { return this.optional(element) || value.match(param); }, 'Please enter a valid value.'); $(fun

我需要验证带有额外域的电子邮件地址。我当前使用
@email.com
验证普通电子邮件,但我需要验证具有
@email.email.com
的电子邮件。我对正则表达式不够熟悉

$.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.'
                }
            }
        });
  });
要将任何(常用)电子邮件与两部分顶级域匹配,如
*@google.co.uk
,您可以使用RegExp,它匹配域部分中的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-]
    与名称大致相同,但没有

  • 顶级域部分
    \.\w+(\.\w+)
    将匹配任何单个tld,如
    .com
    .net
    ,以及双tld
    .co.uk
    .co.jp
    .foo.bar

RegExp非常短。
如果您真的对正确的电子邮件验证感兴趣,那么您应该查看(SCNR:D)

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

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

@安德烈亚斯-你应该把这个(带着一个简短的解释)作为回答。我的简短回答是:不要费心使用正则表达式“验证”电子邮件地址,因为(1)您会弄错并排除有效的电子邮件地址(就像xvatar在该答案中所做的那样)和(2)您必须发送确认测试消息。@Andreas-谢谢,但我已经知道这些网站。我只是很难收到像
@testemail.com
而不是@test.email的电子邮件。com@StephenP-我有一个特定风格的电子邮件,我需要匹配它,它没有看起来那么糟糕。我只是想验证一个特定的电子邮件。那么,也许xvatar的答案就是你想要的。是的,jqueryvalidate已经验证了电子邮件地址,但我正在尝试验证它是否是内部电子邮件。