Question : [密碼欄位檢查] 內容不可全數字或全英文, 範例輸出入如下 (input → output)。 123213123123 → false (因為全數字) adfdsbrr → false (因為全英文) abc123 → true 看似簡單, 但條件後來加了一個, 不可用 regex。以及有個小陷阱, 就是 : 不是去檢查英文或數字, 而是不能清一色英文或數字; 這個有了解嗎 ? 如果單純跑迴圈去檢查英文或數字, 那就誤會了哦。一開始沒想太多也不知道好用的函式, 但覺得 ASCII 滿適合上陣的, 先丟兩個版本。 public static bool ASCIIIsStrongPassword(string s) { s = s.ToLower(); long i; if (long.TryParse(s, out i)) return false; //全數字NG if (s.Any(c => c < 'a' || c > 'z')) return true; //擁有一個非英文就pass return false; } public static bool XORIsStrongPassword(string s) { s = s.ToLower(); bool isDigit = false; bool isLetter = false; for (var i = 0; i < s.Length; ++i) { if (s[i] >= '0' && s[i] <= '9') isDigit = true; else if (s[i] >= 'a' && s[i] <= 'z') isLetter = true; if (isDigit && isLetter) return true; } return !isDigit && !isLetter; } 這兩個算創意版
劍心 ~紀念軟體開發 10+ 年~ ~紀念寶寶 元 年~