【问题标题】:jQuery default email validation [duplicate]jQuery默认电子邮件验证[重复]
【发布时间】:2014-11-22 13:33:27
【问题描述】:

我知道以下几点:-

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

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

【问题讨论】:

标签: jquery jquery-validate email-validation


【解决方案1】:

用于电子邮件的 jQuery 验证插件

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

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

可以将每个规则指定为具有 depends-property 以仅在某些条件下应用该规则。有关详细信息,请参见下面的第二个示例。

示例:根据需要指定 name 元素和根据需要指定 email 元素(使用单个规则的快捷方式)和 有效的电子邮件地址(使用另一个对象文字)。

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

以上是理论。 我们想找出使用​​这个标签的确切含义。所以,让我们看一下插件的文件core.js,它定义了我们要学习的regex。这个问题的答案是插件使用的regex。

在此处检查此正则表达式: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
    }
  }
});

希望,它会有所帮助!

【讨论】:

  • 再次感谢您的宝贵时间。但是,我的问题是关于email: true 的定义。
  • 让我检查更多。你想知道正则表达式是什么?
  • 是的,如果可能的话。
  • 所以我们找到了正则表达式。见上文
猜你喜欢
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 2015-11-06
  • 1970-01-01
  • 2018-07-30
  • 2018-05-30
  • 2011-06-21
相关资源
最近更新 更多