Enter toevoegen aan preg match
Ik heb een contact formulier.
Nu heb ik daar een opmerking tekst vak.
Nu krijg ik steeds een foutmelding dat het niet goed ingevuld is als er een enter gebruikt is.
Is dit op te lossen.
Ik heb zitten google maar ik kom er niet uit.
Het gaat voer dit stukje script:
if ( !isset($_POST['email']) or !preg_match( '~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i/n', $_POST['email'] ) ) {
$aErrors['email'] = 'Emailadres is niet ingevuld';
Gewijzigd op 06/11/2014 12:56:08 door Jurgen de Brouwer
De melding 'Emailadres is niet ingevuld' zou ik vervangen door 'Emailadres is niet of onjuist ingevuld'
if ( !isset($_POST['berricht']) or !preg_match( '/^[A-Za-z0-9\-\\,. ]+$/', $_POST['berricht'] ) ) {
$aErrors['berricht'] = 'Vraag / opmerking is niet ingevuld';
}
Code (php)
P.s. Het woord "bericht" schrijf je met 1 "r".
oja typ foutje
preg_match( '/^[A-Za-z0-9\-\\,\. ]+$/m', $_POST['berricht'])
Toevoeging op 06/11/2014 13:25:57:
O ja, die . in je regex is een wildcard die alles matcht. Als je daadwerkelijk een punt wilt matchen, moet je die escapen: \.
Gewijzigd op 06/11/2014 13:26:43 door Willem vp
Mee eens. De regex die in de eerste post wordt gebruikt weigert een heleboel geldige adressen.
Er zijn zo van die dingen die je beter kunt overlaten aan bestaande library-functies.
Overigens, een regex die het een stuk beter doet is deze:
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?