Einfache php preg_match funktioniert nicht für mich
Habe ich mal Gegoogelt und sah eine Menge von threads zu diesem Thema, aber keiner beantwortet diese Frage für mich. Ich kopierte sogar mehrere unterschiedliche filter-Zeichenfolgen, die die gleiche Sache zu tun, meine einfache Validierung. Sie alle arbeiten auf www.functions-online.com/preg_match.htm aber keiner von Ihnen arbeiten, in mein if () - Anweisung.
PHP ver. 5.3.3
Mein code damit nur für Alpha-Numaric und Räume:
$myString = 'My Terrific Game';
if (!preg_match('/^[a-z0-9\s]+$/i', $myString)) { "$errorMessage }
Habe ich sogar reduziert der filter auf '/^[a-z]+$/', und der test string 'mytarrificgame und es trotzdem gibt null zurück. Es ist, als wenn preg_match() funktioniert nicht bei allen.
Jemand irgendwelche Vorschläge?
Sie können dieses tool verwenden, um überprüfen Sie Ihre regulären Ausdrücke: regex101.com
InformationsquelleAutor ThomasJ | 2015-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Dinge, die Sie brauchen, um zu korrigieren:
"$errorMessage
. Es sollte$errorMessage
oder"$errorMessage"
.echo $errorMessage
.Sollte diese Arbeit
Oder, wenn Sie darüber nachdenken, passende nur 1 Zeichen außerhalb derjenigen, die genug sein sollte.
Code:
ideone Demo
InformationsquelleAutor Mariano
Habe ich versucht, den filter-string angezeigt, im 2. Beispiel der ersten Antwort oben, und es hatte noch nicht einmal die Arbeit an den on-line-test-Seite, aber es gab mir einen neuen Ausgangspunkt zu lösen, mein dilemma. Als ich zog die Karotte, die vor der öffnenden Klammer steht, es funktioniert aber unzuverlässig. Nach dem Versuch verschiedene Dinge, die ich endlich zurück zu meiner ursprünglichen '/^[a-z0-9\s]+$\i', und es begann die Arbeit grundsolide. Ich denke, der Grund dafür, dass es nicht funktionieren würde, an alle, die für mich früher, dass ich erwartet wurde ein boolean test auf die preg-match (expression) zu akzeptieren, eine null als falsch. Dies ist wohl eine php-version 5.3.3 Sache. Ich habe Folgendes versucht;
Es funktioniert jetzt. Durch einen Blick tief in die preg-match() die Beschreibung, die ich fand, dass es gibt nur einen boolean-false, wenn ein Fehler aufgetreten ist. Eine gültige " keine übereinstimmung gibt null zurück.
Danke an alle, die sah hier und als mein problem.
InformationsquelleAutor ThomasJ