RegEx Issue: Preg_Match Only 2 non consecutive spaces, no special characters [PHP] -
so class simulating putting in first, middle, , last name form. have variable $fullname concats them , pulls out middle initial strtolower , ucfirst...
so robert james smith parsed robert j smith.
now if put r!bert j smith (note special character"!") accepted. combat did if/else statement pregmatch.
if (preg_match("/[^a-z\s]/i",$fullname)) { echo ("<span class = 'warning'>invalid user name!</span>"."<br>" ."please use characters a-z name."."<br>"); exit; } else { echo ("user name: ".$fullname."<br>"); } this says if there besides letters , whitespace, throw echo message.
now have run issue if enter r obert j smith. (note space character inbetween r , o). because allow whitespace says okay. goes on mess "create username , password" functions later on.
tldr: asking allow pregmatch match or not match 2 nonconsecutive whitespaces , characters a-z/i
note: tried doing various versions of \s {2} consecutive spaces, not non-consecutive spaces.
ps: there ever 2 spaces. trim input before parsed $fullname .
i have been trying 3 hours , frustration blocking ability approach in different direction.
thank you, thelaughingman
it possible regular expression:
/^\w+(\s\w+){0,2}$/ which matches 1, 2 or 3 space-separated words, or use match 3:
/^\w+\s\w+\s\w+$/ but split check invalid characters (/[^\w]/) off checking number of words entered:
if ( count( explode(' ', $fullname) ) != 3 )
Comments
Post a Comment