Okay, I have read about regex all day now, and still don't understand it properly. What i'm trying to do is validate a name, but the functions i can find for this on the internet only use [a-zA-Z]
, leaving characters out that i need to accept to.
I basically need a regex that checks that the name is at least two words, and that it does not contain numbers or special characters like !#¤%&/()=...
, however the words can contain characters like æ, é, Â and so on...
An example of an accepted name would be: John Elkjærd or André Svenson
An non-accepted name would be: Hans, H4nn3 Andersen or Martin Henriksen!
If it matters i use the javascript .match()
function client side and want to use php's preg_replace()
only in negative server side. (removing non-matching characters).
Any help would be much appreciated.
Update:
Okay, thanks to Alix Axel's answer i have the important part down, the server side one.
But as the page from LightWing's answer suggests, i'm unable to find anything about unicode support for javascript, so i ended up with half a solution for the client side, just checking for at least two words and minimum 5 characters like this:
if(name.match(/S+/g).length >= minWords && name.length >= 5) {
//valid
}
An alternative would be to specify all the unicode characters as suggested in shifty's answer, which i might end up doing something like, along with the solution above, but it is a bit unpractical though.