jQuery验证与HTML5模式匹配

5

如何让jQuery支持HTML5的模式验证?如果不需要在每个字段上指定模式,那就太好了。

我知道我可以这样做(如下),但有更好的方法吗?

$("form").validate({
  rules: {
    "password": {
      pattern: /[A-Za-z0-9\w]{4,20}/,
    }
  }
});

请看示例 http://jsfiddle.net/2ma8ec6j/

你应该可以从该模式中删除 ^(正则表达式始终是完整的 match() 样式 - 请参阅 MDN 文档)。 - declension
我该如何为OR条件添加多个模式匹配? - Siddhart hundare
编写一个具有或条件的模式。我不知道如何编写,但它应该是标准的正则表达式。 - aWebDeveloper
1个回答

10

引言:

"如何让jQuery验证/支持HTML 5模式?"

它已经做到了,详见下文

"如果不在每个字段上指定模式,那就太好了。"

如果您不在某些地方指定这个,它将如何知道哪个模式适用于哪个字段?


"......有更好的方法吗?"

您可以通过内联HTML属性声明一些规则。但是,您可以通过.validate().rules()方法中的rules选项声明所有规则。

我不知道这是否更好,因为这纯粹是一种观点,但只要包括additional-methods.jspattern.js文件,jQuery验证插件将捕获并使用HTML5 pattern属性。

<input type="text" name="somename" pattern="[A-Za-z0-9\w]{4,20}" />

演示: http://jsfiddle.net/fLxgz9dn/

参见: https://github.com/jzaefferer/jquery-validation/issues/785


我尝试了和你一样的方法,但对我的情况不起作用。让我们调试一下,如果还不行,我会贴一个fiddle。 - aWebDeveloper
@aWebDeveloper,当你在.validate()中声明它时可以工作,但是当你内联声明时就不行了?你没有展示出来的其他东西可能会破坏它,所以我们需要等待你在jsFiddle中重现这个问题。 - Sparky
2
我认为我缺少了额外的方法。 - aWebDeveloper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接