[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • xform preg_match für Telefon-Nr.
Seite 1 von 1

xform preg_match für Telefon-Nr.

Verfasst: 24. Aug 2016, 15:27
von Fanello
Liebe Redaxo-Community

Ich versuche in einem Formular (mit xform Formbuilder erstellt) die Telefon-Nr. zu validieren:

Code: Alles auswählen

text|bew_telefon|Telefon*|||
validate|empty|bew_telefon|Bitte geben Sie Ihre Telefon-Nummer ein.
validate|preg_match|bew_telefon|/^([0-9 +])$/i|Bitte geben Sie eine korrekte Telefon-Nummer ein.
validate|size_range|bew_telefon|10|20|Bitte geben Sie eine korrekte Telefon-Nummer ein.
Ich checke also, ob überhaupt was drin steht, dass nur die Ziffern 0-9, Leerzeichen und ein Plus (+) vorkommen darf und ausserdem dass die Nr. mindestens 10 aber maximal 20 Zeichen lang sein darf.

Ob überhaupt was drin steht und die Länge der Nr. checkt er soweit, nur das mit dem preg_match funktioniert nicht. Ob ich jetzt nur Ziffern oder Ziffern mit Leerzeichen schreibe, ich erhalte im Frontend immer wieder die Meldung, dass ich eine korrekte Nr. eingeben muss.

Hab ich mit der Preg_match Validierung etwas falsch verstanden?

Re: xform preg_match für Telefon-Nr.

Verfasst: 24. Aug 2016, 15:53
von Thomas.Blum
Hej,

deine Regex sagt bis jetzt, das zwar die Zeichen vorkommen dürfen aber eben nur einmal.

Probier mal diese Regex und lösche das size_range.

Code: Alles auswählen

/^[0-9 +]{10,20}$/i
vg Thomas

Re: xform preg_match für Telefon-Nr.

Verfasst: 24. Aug 2016, 16:18
von Fanello
Voilà.. so funktioniert es. Vielen Dank Thomas!

Code: Alles auswählen

text|bew_telefon|Telefon*|||
validate|empty|bew_telefon|Bitte geben Sie Ihre Telefon-Nummer ein.
validate|preg_match|bew_telefon|/^[0-9 +]{10,20}$/i|Bitte geben Sie eine korrekte Telefon-Nummer ein.
Was genau bewirkt denn {10,20}? Ist das auch die mindeste Anzahl Zeichen und die maximale?

Re: xform preg_match für Telefon-Nr.

Verfasst: 24. Aug 2016, 19:39
von Ingo
Ist Mindestlänge 10 nicht etwas gewagt? Und was ist mit 66666+66666 :)