jQuery验证,需要阻止免费电子邮件地址(如Gmail、Hotmail)
我需要添加一个自定义验证规则(或一组规则),以防止整个电子邮件地址列表注册。这已经在服务器端运行了,但是我们希望前端也能模拟它 我有一个40或50个免费电子邮件帐户(如Gmail、Hotmail、Live mail等),需要使用列表中的一个词干将任何电子邮件地址验证为FALSEjQuery验证,需要阻止免费电子邮件地址(如Gmail、Hotmail),jquery,jquery-validate,email-validation,Jquery,Jquery Validate,Email Validation,我需要添加一个自定义验证规则(或一组规则),以防止整个电子邮件地址列表注册。这已经在服务器端运行了,但是我们希望前端也能模拟它 我有一个40或50个免费电子邮件帐户(如Gmail、Hotmail、Live mail等),需要使用列表中的一个词干将任何电子邮件地址验证为FALSE 我该怎么做呢?如果您已经有了这个正在运行的服务器端,只需向您的服务器发出AJAX请求,以重用相同的验证逻辑即可。(您的客户端代码将向服务器返回XMLHttpRequest,服务器的验证逻辑运行,并将状态返回给客户端-所有
我该怎么做呢?如果您已经有了这个正在运行的服务器端,只需向您的服务器发出AJAX请求,以重用相同的验证逻辑即可。(您的客户端代码将向服务器返回XMLHttpRequest,服务器的验证逻辑运行,并将状态返回给客户端-所有这些都不需要重新加载HTML页面。您已经指出您正在使用jQuery,因此这应该很容易。)
作为额外的好处,您的服务器端代码可以缓存检查-这样当服务器重复检查(可能仅几秒钟后)进行验证时,无需客户端参与(出于安全需要,因为客户端发送的任何内容都不可信-想想Firebug,等等)-服务器可能不需要重复其检查的全部工作。(在不知道服务器端验证包含哪些内容的情况下,这可能过于琐碎而无法优化。如果它包含对web服务的任何外部调用等,则可能值得缓存。)使用服务器端数组生成包含相同值的jQuery数组,然后使用jQuery的.inArray()方法查找它 例如:
$('#submit_button').click(function(event){
var emailAddress = $('#email').val();
var emailDomain = emailAddress.substr(emailAddress.search('@') + 1)
if (jQuery.inArray(emailDomain, invalidAddresses))
{
alert("Invalid Email Address");
event.preventDefault();
}
});
为什么你不把所有你不需要的邮件都放在一个数组里 比如说
var email = new Array('Hotmail','Gmail','Yahoo',...,'Live');
您已经拥有了所有电子邮件列表、数组或json文件、xml、txt等等
下一个。使用正则表达式生成函数句柄
$(function()
// $('selector').event(function(){
function handdlerMail(email){
for(var i = 0; i<email.length; i++){
if(evalEmail(current_value,/^email[i]/g){
// do something
} else { // do something }
} // end for
} // End function
function evalEmail(a,b) {
if ((b.test(a))) {
return true;
} else {
return false;
}
}
}) // end of event
}) // enf of function
$(函数()
//$('selector')。事件(函数(){
功能handdlerMail(电子邮件){
对于(var i=0;i)您的答案比我的好得多;所以我要放弃我的答案。我不是这个项目中的服务器端人员,所以在我现有的时间范围内,移动他们的代码以访问XMLHttpRequest是不可行的。但是我喜欢您的想法。我需要一个或多或少粗糙和肮脏的解决方案。@McDade-您对“规则”有什么建议吗至于如何确定一个免费电子邮件地址?也许它就像一个域黑名单一样简单?考虑到这些要求,我相信有人可以提供一个只使用JavaScript的实现。否则,您可能还可以调用一个第三方web服务,而无需将服务器上已经存在的实现作为服务提供一个。是的,这只是一个静态的黑名单。我有一个非常小的js数组在等着我通过正确的验证方法运行它。关于如何将其转换为实际的jQuery验证规则,有点模糊。你能详细说明一下吗?离题,但为什么你要阻止人们注册免费电子邮件帐户?我知道有人只添加了一封电子邮件ress是一个免费的。它是一个企业对企业的网络应用程序,涉及到作为一个真实的实体公司的员工/合作伙伴进行验证。比如说Apple.com。好吧,这很公平。除了,比如说,雅虎的员工的地址是否与免费的雅虎地址看起来不同?这里有相当的语义,但在这种情况下,我们必须手动给出them访问。请不要将用于(我在电子邮件中)
。请参阅。