【发布时间】:2023-03-07 05:58:02
【问题描述】:
我正在为 jquery validate 插件开发一种添加方法,该方法必须检测是否输入了 3 个或更多连续的相同字符,并提示一条消息。 为此,我需要否定一个正则表达式。这是我的方法:
$.validator.addMethod("pwcheckconsecchars", function (value) {
return /(.)\1\1/.test(value) // does not contain 3 consecutive identical chars
}, "The password must not contain 3 consecutive identical characters");
上面的代码在没有输入连续相同字符时显示错误消息,所以我需要否定表达式/(.)\1\1/,以便它只在出现错误时出现。
到目前为止,这个 jsfiddle 显示了我的代码:http://jsfiddle.net/jj50u5nd/3/
谢谢
【问题讨论】:
-
return !/(.)\1\1/.test(value);怎么样 -
关于你的 jsFiddle,你真的应该将所有这些不同的正则表达式组合成一个。没有必要有五个自定义方法!您甚至可以将最小/最大长度规则合并到其中一次替换七个规则。
-
@Sparky。验证规则是根据我无法修改的业务需求设置的。问题是我需要为每个未通过的规则显示一条自定义消息。仅使用一种收集所有规则的方法就可以实现吗?
-
@Pointy。那是行不通的。有关如何解决此问题的任何其他建议?
-
输入“AAAa1”,它对我来说工作正常:jsfiddle.net/jj50u5nd/6
标签: jquery regex jquery-validate regex-negation negate