const isValidPassword = (password) => { // 1.长度超过8位 if (password.length < 8) { return false; } // 2.包括大小写字母.数字.其它符号,以上四种至少三种 let a = 0; let b = 0; let c = 0; let d = 0; for (const pass of password) { if (/[a-z]/.test(pass)) { a = 1; } else if (/[A-Z]/.test(pass)) { b = 1; } else if (/\d/.test(pass)) { c = 1; } else { d = 1; } } if (a+b+c+d < 3) { return false; } // 3.不能有长度大于2的包含公共元素的子串重复 let i = 0; const reg = /[\(&\+]/; while (i < password.length - 2) { let cur = password[i]; let next = password[i+1]; if (reg.test(cur)) { i ++; continue; } const repeatIndex = password.lastIndexOf(cur + next); if (repeatIndex !== i && repeatIndex !== i+1) { return false; } i ++; } return true; }; let i = 100; while (i > 0) { const input = readline(); if (!input) { break; } if (isValidPassword(input)) { console.log('OK'); } else { console.log('NG'); } i --; }