2

有人可以帮助我使用 RegEx 模式验证以下规则吗

最大长度:15
最小长度:6
最小字符数:1
最小数字数:1
后续重复字符数:2

4

2 回答 2

6
^                   # start of string
(?=.{6,15}$)        # assert length
(?=.*[A-Za-z])      # assert letter
(?=.*[0-9])         # assert digit
(?:(.)(?!\1\1))*    # assert no more than 2 consecutive characters
$                   # end of string

会这样做。但这在 JavaScript 中看起来不太好(或易于维护):

if (/^(?=.{6,15}$)(?=.*[A-Za-z])(?=.*[0-9])(?:(.)(?!\1\1))*$/.test(subject)) {
    // Successful match
} else {
    // Match attempt failed
}
于 2010-09-13T10:13:39.560 回答
2

我建议您使用一些不同的正则表达式模式来检查所有这些规则,因为这要么是不可能的,要么非常复杂。

  • .length检查前两条规则
  • [a-z](带有不区分大小写的选项)第三条规则
  • \d第四条规则
  • (.)\1{2,}对于第 5 条规则,如果此规则匹配,则字符串包含 3+ 个字符重复
于 2010-09-13T08:15:55.470 回答