I agree with the other comments that validating a name is probably a bad idea.
For virtually everything you can think of to validate, there will be someone with a name that breaks your rule. If you're happy with the idea that you're going to be blocking real people from entering their names, then you can validate it as much as you like. But the more validation rules you put in, the more likely you are to find a real person who can't sign in.
Here's a link to a page which describes some of the obvious (and not so obvious) things which people try to validate, which can trip them up:
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
If you want to allow anybody onto your site, then the best you can really hope for is to force a maximum field length to fit the space you've allocated in your database. Even then you're going to annoy someone.