Hej Alle!
Jeg er ved at forsøge at validere noget input vha. preg_match("regex", $variabel)
Jeg har en værdi fra en form der kun må indeholde:
små bogstaver a-z
tal 0-9
slash og bindestreg /-
Desuden SKAL det starte med /
ALLE andre tegn skal resultere i at data ikke bliver valideret og kan sendes videre.
Det jeg har lavet ser sådan ud, men når jeg "opfylder kravene", dvs. når jeg har et eller flere af de tegn med som der er i mønstret, OG inkluderer tegn som f.eks *^€£@£, så får jeg ikke min fejl besked selvom der er forkerte tegn med ud over a-z0-0/-
Det jeg har ser sådan ud:
- if(!preg_match("^[/][0-9a-z-/]{3}^", $url_key)) {
- // Echo til test brug, ellers fejlbesked i array:
- echo 'Url key skal starte med / og være min 3 karakterer!
- <br />';
- $errors[2] = '<small>Url Key</small>';
- }
Det virker sådan at hvis der ikke startes med /, så kommer der en fejl. Så langt så godt, men som beskrevet ovenfor så har jeg ikke lavet det så der UDELUKKENDE accepteres:
små bogstaver, tal, /, -
Hvad gør jeg galt?
Med Venlig Hilsen,
Jan Klemmensen