题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void (async function () { // Write your code here let str; let sum = 0; let w = false; let d = true; let s = true; let Ww = false; while ((line = await readline())) { str = line; } switch (true) { case str.length <= 4: sum += 5; break; case str.length >= 5 && str.length <= 7: sum += 10; break; case str.length >= 8: sum += 25; break; } // console.log('c',sum); switch (true) { case str.match(/[a-z]/gi) == null: sum += 0; break; case str.match(/[a-z]/g).length == str.match(/[a-z]/gi).length || str.match(/[A-Z]/g).length == str.match(/[a-z]/gi).length: sum += 10; w=true; break; case str.match(/[a-z]/g).length > 0 && str.match(/[A-Z]/g).length > 0: sum += 20; Ww = true; break; } // console.log('w',sum); switch (true) { case str.match(/[\d]/g) == null: sum += 0; d = false; break; case str.match(/[\d]/g).length == 1: sum += 10; break; case str.match(/[\d]/g).length > 1: sum += 20; break; } // console.log('d',sum); switch (true) { case str.match(/[^a-z0-9]/ig) == null: sum += 0; s = false; break; case str.match(/[^a-z0-9]/ig).length == 1: sum += 10; break; case str.match(/[^a-z0-9]/ig).length > 1: sum += 25; break; } // console.log('s',sum); switch (true) { case Ww && d && s: sum += 5; break; case w && d && s: sum += 3; break; case w && d: sum += 2; break; } // console.log('e',sum); let result; switch (true) { case sum >= 90: result = "VERY_SECURE"; break; case sum >= 80: result = "SECURE"; break; case sum >= 70: result = "VERY_STRONG"; break; case sum >= 60: result = "STRONG"; break; case sum >= 50: result = "AVERAGE"; break; case sum >= 25: result = "WEAK"; break; case sum >= 0: result = "VERY_WEAK"; break; } console.log(result); })();