【问题标题】:Regex and jquery validate. Negate expression正则表达式和 jquery 验证。否定表达式
【发布时间】: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


【解决方案1】:

正如 Pointy 在 cmets 中所说,使用 ! 字符来否定或反转结果。

$.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");

在下面的演示中输入一个“AAAa1”,它满足了足够的其他规则来证明这个特定的方法是有效的。

演示:http://jsfiddle.net/jj50u5nd/6/

【讨论】:

  • 太棒了。再次感谢各位。 :)
猜你喜欢
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多