Allow apostrophe when using ctype_alpha?

Viewed 823

I know there's are other ways to do it, but I'm playing with validating a name field using ctype_alpha but allowing spaces, hyphens, and apostrophes.

Per another post on Stack, I was able to add the spaces no problem, but I'm thinking I have the syntax wrong for replacing multiple characters.

What I've used so far that works for validating that only letters and spaces are allowed:

if (ctype_alpha(str_replace(' ', '', $name)) === false) {
    echo'Name must contain letters and spaces only';
    exit;
}

This removes any spaces before checking that the string is letters only. I was looking to simply add to this to also allow hyphens and apostrophes.

What I've tried for adding hyphens and/or apostrophes (doesn't work):

if (ctype_alpha(str_replace(' ', '', '-', '', $name)) === false) {
    echo'Name must contain letters and spaces only';
    exit;
}

My guess is that adding a second string in the str_replace function is not proper syntax, but being a PHP newb, I'm having a hard time figuring out how to phrase my searches to find the correct syntax.

Also, am I correct in saying that '\w' will cover my apostrophes once I figure out the correct syntax for the str_replace function?

Genuinely appreciate the help guys. You're all invaluable and I try hard not to abuse it.

2 Answers
Related