Der kan da ikke være tal i et navn?
- if(preg_match('/[0-9]/', $str)) {
- die('There are numbers.');
- }
- if(!preg_match('/^[a-zæøåÆØÅ-]{2,}\s+[a-zæøåÆØÅ-]{2,}$/iu', $str)) {
- die('Not a valid format.');
- }
Der vil være nogle udfordringer med ovenstående, i og med at man kan indtaste to bindestreger, og så er den god.
Men du kan også splitte navnet ved mellemrum, og så validere hver enkelt del, så bliver det mindre komplekst.
- if(preg_match('/[0-9]/', $str)) {
- die('There are numbers.');
- }
-
- $parts = preg_split('/\s+/', $str);
- foreach($parts as $part) {
- if(!preg_match('/^[a-zæøåÆØÅ-]{2,}$/iu', $part) && !preg_match('/^-+$/iu', $part)) {
- die('Not a valid format.');
- }
- }
Du skal nok lige teste, da det blot er noget der er kastet sammen hurtigt.