用环视:^(?!.*(.)\1{2})(?=.*[^a-zA-Z])(?=.*[a-zA-Z].*[a-zA-Z]).{8,}$
例如:
/^(?!.*(.)\1{2})(?=.*[^a-zA-Z])(?=.*[a-zA-Z].*[a-zA-Z]).{8,}$/.test("1234567a")
/^(?!.*(.)\1{2})(?=.*[^a-zA-Z])(?=.*[a-zA-Z].*[a-zA-Z]).{8,}$/.test("1234567ab")
/^(?!.*(.)\1{2})(?=.*[^a-zA-Z])(?=.*[a-zA-Z].*[a-zA-Z]).{8,}$/.test("password1")
/^(?!.*(.)\1{2})(?=.*[^a-zA-Z])(?=.*[a-zA-Z].*[a-zA-Z]).{8,}$/.test("passsword1")
/^(?!.*(.)\1{2})(?=.*[^a-zA-Z])(?=.*[a-zA-Z].*[a-zA-Z]).{8,}$/.test("paword1")
const reg = /^(?=.{8,}$)(?=.*[^a-z]+.*$)(?=(?:.*[a-z]){2}.*$)(?!.*(.)(?:.*\1){2}.*$).*$/i;
const strs = [
'ab',
'abcdefghs',
'a1bcdabbcs',
'a1abcdefgh'
]
const result = strs.map(item => reg.test(item));
console.log(result);
en~·~
这种问题啊说简单嘛简单,需要动手查。
既然被我看到了 给你解决俩个最难的部分吧;(1和2)肯定有人会帮助你解决最简单的那个 hah
/^.{0,7}$|(.)\1{2,}/g.test("12345678")
//false
/^.{0,7}$|(.)\1{2,}/g.test("1112345678")
//true
/^.{0,7}$|(.)\1{2,}/g.test("12678")
//true
很简单的;给你留个最简单的来个自我发挥的空间。
10 回答11.1k 阅读
15 回答8.4k 阅读
7 回答5.3k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
任意字符最少8位
let re = /.{8,}/;
非字母最少1位
[^a-zA-Z]{1,}
包含字母至少两位
[^a-zA-Z]{1,}