2016-11-20 6 views
-1

My stringPHP, Regex; nur Ziffern, Buchstaben und Leerzeichen erlauben

  • darf nur Ziffern enthalten, Buchstaben und Leerzeichen, nichts mehr
  • mindestens zwo Buchstaben enthalten
  • mindestens zehn Ziffern
enthalten

Wie kann ich etwas wiederholen, wenn meine Saite nicht mit diesem Muster übereinstimmt?

Ich hoffe jeder Regex-Experte kann mir helfen, weil ich nicht sehr erfahren bin.

Edit:

Dies ist, was ich zu weit versucht:

if (preg_match('/^[A-Z]+[0-9]+/', $myString)) { 
    echo "Error!"; 
} 
+0

Wir sind nicht hier finden Sie Ihre Arbeit für Sie tun. Was hast du bisher versucht? – Chris

+0

@Chris Ich habe meine Frage aktualisiert. – user7128548

+0

Ich ziehe es oft vor zu fragen und lass den Anfrager denken, anstatt nur eine Antwort in solchen Fällen zu bekommen, aber Moderatoren hier begrüßen diesen Weg nicht :) Jedenfalls werde ich es jetzt versuchen :) Schau, deine Regex '/^[AZ] + [az ] + [0-9] +/'sagt, dass die Zeichenfolge am Anfang einige Großbuchstaben haben muss, DANN einige Kleinbuchstaben und DANN einige Ziffern. Also "Qwerty10" wird übereinstimmen, aber "theQwerty10" wird nicht, und "10Querty" wird nicht zu ... du bist jetzt dran :) – AlexandrX

Antwort

0

Dies wird die Arbeit machen:

/^(?=(?:.*[a-z]){2})(?=(?:.*\d){10})[a-z0-9 ]+$/i 

es in PHP:

if (preg_match('/^(?=(?:.*[a-z]){2})(?=(?:.*\d){10})[a-z0-9 ]+$/i', $myString)) { 
    echo "OK!\n"; 
} else { 
    echo "Error!\n"; 
} 

Erläuterung:

/    : regex delimiter 
^   : start of string 
    (?=   : lookahead 
    (?:   : non capture group 
     .*[a-z] : 0 or more any character followed by a letter 
    ){2}  : end of group, must be present twice 
)    : end of lookahead 
    (?=   : lookahaed 
    (?:   : non capture group 
     .*\d  : 0 or more any character followed by a digit 
    ){10}  : end of group, must be present 10 times 
)    : end of lookahaed 
    [a-z0-9 ]+ : character class, allowed characters are letters, digit and space 
    $    : end of string 
/i    : regex delimiter, case insensitive 

Sie werden nützliche Informationen über Look-Ahead-here, auf Gruppen here

Verwandte Themen