ตรวจสอบรหัสผ่านตามเกณฑ์มาตรฐาน:
- ความยาว 8-14 ตัวอักษร
- มีตัวพิมพ์เล็กอย่างน้อย 1 ตัว
- ไม่มีช่องว่าง
- มีตัวพิมพ์ใหญ่อย่างน้อย 1 ตัว
- มีอักขระพิเศษอย่างน้อย 1 ตัว
โค้ดตรวจสอบแต่ละเงื่อนไข
// 1. ความยาว 8-14
if (passwd.Length < 8 || passwd.Length > 14) return false;
// 2. มีตัวพิมพ์เล็กอย่างน้อย 1
if (!passwd.Any(char.IsLower)) return false;
// 3. ไม่มีช่องว่าง
if (passwd.Contains(" ")) return false;
// 4. มีตัวพิมพ์ใหญ่อย่างน้อย 1
if (!passwd.Any(char.IsUpper)) return false;
// 5. มีอักขระพิเศษอย่างน้อย 1
string specialChars = @"%!@#$%^&*()?/>.<,:;'\|}]{[_~`+=-""";
foreach (char ch in specialChars) {
if (passwd.Contains(ch))
return true; // เจออักขระพิเศษแล้ว
}
return false; // ไม่เจออักขระพิเศษ
ฟังก์ชันรวม (แนะนำ)
public static bool ValidatePassword(string passwd) {
if (passwd.Length < 8 || passwd.Length > 14) return false;
if (!passwd.Any(char.IsLower)) return false;
if (!passwd.Any(char.IsUpper)) return false;
if (passwd.Contains(" ")) return false;
string specialChars = @"%!@#$%^&*()?/>.<,:;'\|}]{[_~`+=-""";
return passwd.Any(c => specialChars.Contains(c));
}
หมายเหตุ: โค้ดต้นฉบับมีบั๊กในส่วน special character (ตัวแปรซ้ำชื่อ specialCh) ผมแก้ไขแล้ว