使用jQuery验证电子邮件域名

时间:2014-11-15 05:55:56

标签: jquery

我想使用jQuery验证输入的电子邮件ID域。出于安全原因,我们将电子邮件ID限制为仅限2个电子邮件域,例如 company1.com 和** company2.co,**。

因此,如果用户输入 user1@gmail.com ,我们需要显示错误消息输入有效的电子邮件地址

只允许用户输入 user1@company1.com user2@company2.com

我正在使用以下代码,但它无效:

jQuery.validator.addMethod("domain", function(
            value, element) {
            var val = value.substring(value.indexOf('@')+1, value.length);
            return this.optional(element) || /'company1.com'/.test(val) || /'company2.com'/.test(val);              

    }, 'Enter a valid email address');

在规则中,我要添加域名:true

你可以告诉我在哪里错过了吗?

3 个答案:

答案 0 :(得分:2)

正则表达式是错误的,你已经添加了引号并没有逃过这个时期,这在正则表达式中具有特殊意义,它应该看起来像

/company1\.com/.test(val)

但看起来没有正则表达式就可以更容易地做到这一点

jQuery.validator.addMethod("domain", function (value, element) {
    return this.optional(element) || 
           ['company1.com','company2.com'].indexOf(value.split('@').pop()) != -1;
},'Enter a valid email address');

答案 1 :(得分:0)

您可以尝试使用此正则表达式:

emailRegex = /^[a-zA-Z0-9.!#$%&'+/=?^_{|}~-]+@company1\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/ and emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_{|} ~-] +@company2。 a-zA-Z0-9?) $ /

答案 2 :(得分:0)

  

function isValidEmailAddress(emailAddress){       var pattern = new RegExp(/([\ w - 。] +)@((?:[company1] +。)+)([a-zA-Z] {2,4})/ i);       return pattern.test(emailAddress); };

通话功能

isValidEmailAddress('user1@company1.com')
  

if(!isValidEmailAddress(emailaddress)){/ *在这里做的事情* /}

查看此链接Validating email addresses using jQuery and regex