Bien, he leído sobre regex todo el día y todavía no lo entiendo correctamente. Lo que trato de hacer es validar un nombre, pero las funciones que puedo encontrar para esto en internet solo usan [a-zA-Z]
, dejando los caracteres que necesito aceptar.Regex para nombres con caracteres especiales (Unicode)
Básicamente necesito una expresión regular que compruebe que el nombre sea de al menos dos palabras, y que no contenga números o caracteres especiales como !"#¤%&/()=...
, pero las palabras pueden contener caracteres como æ, é, Â, etc. .
un ejemplo de un nombre aceptado sería: "John Elkjærd" o "André Svenson"
un nombre no aceptado sería: "Hans", "H nn Andersen" o "Martin Henriksen !"
Si importa, uso el lado del cliente de la función javascript .match()
y quiero usar el preg_replace()
de php solo del lado del servidor "negativo". (eliminando los caracteres que no coinciden).
Cualquier ayuda sería muy apreciada.
Actualizar:
bien, gracias a Alix Axel's answer i tienen el importante papel hacia abajo, el lado del servidor uno.
Pero como la página de LightWing's answer sugiere, no puedo encontrar nada acerca del soporte de unicode para javascript, así que terminé con la mitad de una solución para el lado del cliente, solo revisando al menos dos palabras y un mínimo de 5 caracteres como esto:
if(name.match(/\S+/g).length >= minWords && name.length >= 5) {
//valid
}
una alternativa sería especificar todos los caracteres Unicode como se sugiere en shifty's answer, que podría terminar haciendo algo así, junto con la solución anterior, pero es un poco poco práctico sin embargo.
puede elaborarla con el ejemplo –
@ Amit Gupta, gracias, lo hice. :) –