jQuery默认电子邮件验证

时间:2014-09-27 19:11:38

标签: jquery jquery-validate email-validation

我知道以下内容: -

$( function() 
{
    $( "#register" ).validate
    ({
        rules: 
        {
            ...
            email: {
                    required: true,
                    email: true
                },
            ...

email: true实际意味着什么。哪些字符是允许的,哪些不是?网上有什么参考资料可以让我找到确切含义吗?感谢。

1 个答案:

答案 0 :(得分:1)

电子邮件的jQuery验证插件

规则(默认:从标记中读取规则(类,属性,数据))

定义自定义规则的键/值对。 Key是元素的名称(或一组复选框/单选按钮),value是由规则/参数对或普通String组成的对象。可以与类/属性/数据规则结合使用。

可以将每个规则指定为具有依赖属性,以仅在特定条件下应用规则。有关详细信息,请参阅下面的第二个示例。

示例:根据需要指定名称元素,并根据需要指定电子邮件元素(使用单个规则的快捷方式)和有效电子邮件地址(使用其他对象字面值) )。

$(".selector").validate({
  rules: {
    // simple rule, converted to {required:true}
    name: "required",
    // compound rule
    email: {
      required: true,
      email: true
    }
  }
});

以上是理论。 我们想要找到使用此标记的确切含义。所以,让我们看一下插件的文件core.js,它定义了我们想要学习的正则表达式。这个问题的答案是插件正在使用的正则表达式

在此处检查此正则表达式:http://regexr.com/39j49

// http://jqueryvalidation.org/email-method/
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 );

},

此外,您可以按照此doc添加自定义规则。这样的事情:

jQuery.validator.addMethod("myemailrule", function(value, element) {
  return this.optional(element) /* || your regex here*/
},

$(".selector").validate({
  rules: {
    // simple rule, converted to {required:true}
    name: "required",
    // added custom rule
    email: {
      required: true,
      myemailrule: true
    }
  }
});

希望,这有帮助!