phpretard Posted July 8, 2008 Share Posted July 8, 2008 I am sure there is a simple solution for this... So for I have come up with this. if(preg_match("/^[a-zA-Z][a-zA-Z -]+$/", $Name) === 0) My objective is to requrire a first name and last name. This will require a space between 2 words. John = NO JohnDoe = NO John Doe = YES Can anyone help me with this one? Link to comment https://forums.phpfreaks.com/topic/113696-validating-first-and-last-name-from-one-input/ Share on other sites More sharing options...
thebadbad Posted July 8, 2008 Share Posted July 8, 2008 Did you intent to put that hyphen inside the second character class? This will work for the examples you gave: <?php $Name = 'John Doe'; if (preg_match('|^[a-z]+\s[a-z]+$|iD', $Name)) { echo 'Name OK!'; } else { echo 'Name invalid.'; } ?> \s matches a white space, the pattern modifier i makes the search case insensitive, and the pattern mod. D makes the dollar sign only match the end of subject (if not specified, it also matches a newline character at the end, which would make the whole RegEx match e.g. "John Doe\n"). Link to comment https://forums.phpfreaks.com/topic/113696-validating-first-and-last-name-from-one-input/#findComment-584418 Share on other sites More sharing options...
effigy Posted July 8, 2008 Share Posted July 8, 2008 What about hyphenated last names, suffixes, or two-word first names? Link to comment https://forums.phpfreaks.com/topic/113696-validating-first-and-last-name-from-one-input/#findComment-584474 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.