我想使用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
你可以告诉我在哪里错过了吗?答案 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)){/ *在这里做的事情* /}