我想知道你怎么能接受电子邮件地址的任何扩展名。而不是通过特定的域名扩展名。
例如
foo@surrey.ac.uk< - 需要工作,而萨里是延伸
foo@survey.ac.uk< - 需要工作和调查是扩展
这是我的代码。这是有效的,但问题是,如果你为电子邮件ac.uk添加了一个扩展,它不接受它。例如,如果我注册了一封电子邮件foo@ac.uk,它可以使用,但是如果您尝试添加电子邮件的扩展名,如foo@surrey.ac.uk或foo@survey.ac.uk,则不接受。我希望它添加任何扩展功能。谢谢你!
> polymer test -l edge
Error: The following browsers are unsupported: edge. (All supported browsers: aurora, canary, chrome, firefox, ie)
有人在此帖Email validation using jQuery
中将此查询报告为重复但我的问题不同,因为我需要一个经过批准的域名扩展。不是一般的电子邮件验证
答案 0 :(得分:0)
首先,您应该在重复的帖子条目中使用验证正则表达式 - 它比您包含.+
要好得多,这意味着匹配任何一个或多个任何字符 - 这将允许很多通过无效的电子邮件。您应该验证整个电子邮件,而不仅仅是一部分或另一部分。
至于匹配域名,因为您想要包含子域名,请使用正则表达式来准确匹配域名或以域名结尾但前面有一段时间(any@ac.uk有效,任何@surrey .ac.uk有效,但any@surreyac.uk或any@google.com不匹配。)
//for custom email
jQuery.validator.addMethod('customemail', function(value, element) {
var s=value;
var split = s.split('@');
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var s2=/(^|\.)ac.uk$/; // Regex to ensure domain is either exactly "ac.uk" or ends with ".ac.uk"
//Debugging - This is useful to see visually what is happening
//alert(split[0]); // Shows the inputted username i.e chris or smokey
//alert(split[1]); // Shows the inputted domain
//alert(regex.test(split[0])); //Shows unfilled inputs problem or bad characters, true if good, false if bad
//alert(s2 == split[1]);** // Shows if the inputted domain matches variable s2, if it does we get a true
// Ensure entire email is valid and that it is or ends with the required domain
if(regex.test(s) && (s2.test(split[1])))
{
return true;
}
else
{
return false;
}
}, 'Please specify a Verified Email')