Regex für mindestens 8 + obere und untere + Zahlen oder andere nicht-alphabetische

7
  1. Enthält mindestens 8 Zeichen.
  2. Enthält Groß- und Kleinbuchstaben.
  3. Enthält Zahlen oder andere nicht alphabetische Zeichen.

Was könnte für die oben genannten Kriterien gelten?

Ich erstelle eine Überprüfung für ein stärkeres Passwort:)

c # verwende ich

    
Kuttan Sujith 17.05.2011, 09:59
quelle

2 Antworten

13

Das sollte es tun:

%Vor%

Siehe hier: rubular

Erklärt:

%Vor%     
morja 17.05.2011, 10:05
quelle
11

Versuchen Sie nicht, einen Regexp für alle Regeln zu verwenden - es ist schwierig und, was noch wichtiger ist, es wird schwer sein, von zukünftigen Programmierern gelesen und modifiziert zu werden. Schreiben Sie stattdessen eine Funktion für jede Regel. Verwenden Sie eine String-Längenfunktion für die erste Regel und verwenden Sie dann separate reguläre Ausdrücke (oder einen einfachen Scan der Zeichenfolge) für Großbuchstaben, Kleinbuchstaben und Zahlen.

Ihr Test wird dann zu etwas wie:

%Vor%

Ihr Code wird in seiner Absicht absolut klar, und wenn Sie nur einen Teil des Algorithmus ändern müssen, müssen Sie keinen komplexen regulären Ausdruck neu erfinden. Außerdem können Sie jede Regel einzeln testen.

Vergleichen Sie das mit einem Beispiel, das jemand in einer anderen Antwort auf diese Frage geschrieben hat:

%Vor%

Welche der beiden Antworten scheint leichter zu verstehen, einfacher zu ändern und einfacher zu testen? Sie können nicht einmal erraten, was die Regex macht, bis Sie ein paar (oder viele) Momente damit verbringen, es zu studieren. Und was ist, wenn sich die Anforderung in ".. und mindestens einen Unterstrich" ändert? Wie änderst du das Muster, vor allem, wenn du nicht das Muster war, mit dem du angefangen hast?

    
Bryan Oakley 17.05.2011 10:55
quelle

Tags und Links