RegExp sobre nombres compuestos

publicado por: Anonymous

necesito una expresión regular para validar nombres en un formulario. Debe de validar tanto nombres simples como compuestos, pero solo compuestos por dos palabras, José Manuel sería válido mientras “De La Rosa” no lo sería. También debe validar que la primera letra sea mayúscula y el resto minúscula, además de no tener ningún número.

Por último, el nombre, tanto simple como compuesto, no puede sobrepasar de 15 caracteres ni tener menos de tres.

La cadena construida es la siguiente:

var patronNombre = /^([A-ZÁÉÍÓÚ]{1}[a-zñáéíóú]+[s]*)+$/;

Lo único que no consigo es configurar correctamente la longitud del texto.

Gracias.

solución

Prueba con lo siguiente:

^(?=.{3,15}$)[A-ZÁÉÍÓÚ][a-zñáéíóú]+(?: [A-ZÁÉÍÓÚ][a-zñáéíóú]+)?$

Tienes una demo aquí.

Explicación:

^
    (?=.{3,15}$)    # Lookahead. Lo siguiente debe ser cualquier cosa
                    # entre 3 y 15 y luego fin de línea
    [A-ZÁÉÍÓÚ][a-zñáéíóú]+    # Primera en mayúscula y luego 1 o más minúsculas
    (?: # Grupo
        [A-ZÁÉÍÓÚ][a-zñáéíóú]+    # Primera en mayúscula y luego 1 o más minúsculas
    )?  # El grupo puede aparecer 0 o 1 vez
$
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *