Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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 在Validate.js脚本中验证公司电子邮件_Javascript_Jquery_Jquery Validate - Fatal编程技术网

Javascript 在Validate.js脚本中验证公司电子邮件

Javascript 在Validate.js脚本中验证公司电子邮件,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,如何在validate.js插件中验证公司电子邮件?防止用户输入非公司电子邮件。比如@gmail.com、@yahoo.com、@hotmail.com 这是Validate.js主脚本中电子邮件验证的一部分: email: function( value, element ) { return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z

如何在validate.js插件中验证公司电子邮件?防止用户输入非公司电子邮件。比如@gmail.com、@yahoo.com、@hotmail.com

这是Validate.js主脚本中电子邮件验证的一部分:

email: function( value, element ) {
            return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );
        }

添加异常并对其进行验证

在您的情况下,您可以使用multile regex并对其进行如下验证

  var regex1 =   what-ever-regex-is-@yahoo.com
  var regex2 =   what-ever-regex-is-@hotmail.com
  var regex3 =   what-ever-regex-is-@gmail.com
  var regex4 =   what-ever-regex-is-@live.com
使用!在返回之前..这意味着如果其中一个存在,您的支票将返回true,但是!将更改符号,使其为false,并相应地在代码中使用它

 email: function( value, element ) {
        return (this.optional( element ) || 
 /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@yahoo.com$/.test( value ) 
    || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@hotmail.com$/.test( value )  );
    }

另一种方法是将所有这些已知域合并到一个正则表达式中并进行检查。

解决此问题的干净方法是将域名提取到一个变量中(在@后面加一个子字符串),然后根据域数组检查值

在正则表达式中这样做会给将来阅读此代码的人带来噩梦

例如:

var email = "name@example.com";
var domainName = email.slice((email.indexOf("@") + 1), email.length);

然后检查
domainName
是否在域列表中。

如果你有一组明确的不允许域(或允许域),那会更容易。我有一组不允许域。正如我提到的,Gmail,雅虎,hotmail。你在乎吗。HTML5不适合这里!您不应该编辑插件的源代码。相反,使用下面答案中的自定义函数,使用
.addMethod()
方法创建自定义电子邮件规则。请看:@AmroShahbari您能看到我修改了您的函数吗..将您的函数更改为多个函数..因此您需要像我一样添加其余的函数。。它应该只接受hotmail和yahoo。。你需要添加更多的代码来阻止Yahoo和hotmail。不要接受他们!对如果检查是真的…这意味着它包含其中一封电子邮件提醒无效消息..这就像通过contradiction@AmroShahbari不要添加正则表达式1、2或3。。使用我编写的代码的第二部分。。正则表达式已经在那里了。因为你还没有演示如何做,所以这篇文章更像是一篇评论,而不是一个答案。