有人可以帮助我使用 RegEx 模式验证以下规则吗
最大长度:15
最小长度:6
最小字符数:1
最小数字数:1
后续重复字符数:2
有人可以帮助我使用 RegEx 模式验证以下规则吗
最大长度:15
最小长度:6
最小字符数:1
最小数字数:1
后续重复字符数:2
^ # 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
}
我建议您使用一些不同的正则表达式模式来检查所有这些规则,因为这要么是不可能的,要么非常复杂。
.length
检查前两条规则[a-z]
(带有不区分大小写的选项)第三条规则\d
第四条规则(.)\1{2,}
对于第 5 条规则,如果此规则匹配,则字符串包含 3+ 个字符重复