请教大家一个正则表达式写法

新手上路,请多包涵

cYDhS1.png
实在被难住了,主要不能修改代码,通过的校验的需要能匹配到,如果不满足条件则不会匹配,感谢大家!

阅读 2.5k
4 个回答

任意字符最少8位
let re = /.{8,}/;

非字母最少1位
[^a-zA-Z]{1,}

包含字母至少两位
[^a-zA-Z]{1,}

用环视:^(?!.*(.)\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

很简单的;给你留个最简单的来个自我发挥的空间。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题