题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
使用正则表达式来验证密码是否合格,个人觉得难点有两个,一个是如何验证密码有三种以上不同数据,另外一个是如何验证密码内是否有长度2以上的重复的字符串
代码如下:
//利用while循环获取每行数据,并对每行进行处理 while (line = readline()) { //新建空变量sum,使其为0 let sum = 0; //以下四种数据类型,当密码包含任意一种时sum+=1 if (/[a-z]/.test(line)) { sum += 1; } if (/[A-Z]/.test(line)) { sum += 1; } if (/\d/.test(line)) { sum += 1; } if (/[^\da-zA-Z\s\n]/.test(line)) { sum += 1; } //总结:当密码长度大于8 且sum大于等于3(说明密码包含三种以上数据) 且无长度2以上的重复字符串 则密码“OK” if (line.length > 8 && sum >= 3 && /(.{3,}).*\1/g.test(line) === false) { console.log("OK"); } //其余情况:密码“NG” else { console.log("NG"); } }