Reguläre Ausdrücke sind nicht besonders gut, um sicherzustellen, dass bestimmte Gruppen von Zeichen eine bestimmte Anzahl von Malen angezeigt werden. Obwohl es wahrscheinlich möglich ist - es wäre zweifellos verworren und nicht offensichtlich.
Wenn Sie in .NET (C# oder VB) Programmierung können Sie eine einfache Validierungsfunktion so etwas wie verwenden:
bool ValidatePasswordCompliance(string password)
{
int countDigits = 0;
int countAlpha = 0;
int countOthers = 0;
foreach(char c in password)
{
countDigit += c.IsDigit ? 1 : 0;
countAlpha += c.IsAlpha ? 1 : 0;
countOther += !(c.IsAlpha || c.IsDigit) ? 1 : 0;
}
return countDigits >= 3 && (countDigits + countAlpha + countOthers) >= 7;
}
Wenn Sie die Arbeit mit .NET 3.5 oder höher, können Sie LINQ um dies zu vereinfachen:
bool ValidatePasswordCompliance(string password)
{
return password.Count() >= 7 &&
password.Count(x => x.IsDigit) >= 3;
}
Warum sollte ich mich kümmern? Sie sollten zumindest so tun, als würden Sie sich Mühe geben, selbst einen zu schreiben! –
Ich denke, die Leute fragen ohne ausprobieren ist, warum es abgelehnt ... eine gute Google-Suche gibt leicht ein paar Vorschläge zurück. – BigBlondeViking
^\ * {4,8} $ ... es ist ein Witz –