2012-02-15 26 views
19

Necesito ayuda con la expresión regular. Necesito una expresión que permita solo alfabetos con espacio para ex. nombre del colegio.Expresión regular para alfabetos con espacios

estoy usando:

var regex = /^[a-zA-Z][a-zA-Z\\s]+$/; 

pero no funciona.

+0

El '\\ s' en su expresión regular debería ser simplemente' \ s'. –

+4

2 cosas que no debe olvidar: 1. Acepte la respuesta de Petar (y quizás edite el * para un +; ahora coincide con el string vacío). 2. como está etiquetado javascript, verifique la entrada en el servidor también; las personas pueden deshabilitar javascript y publicar cualquier cosa en su servidor. Las comprobaciones de Javascript están ahí para ayudar al usuario con comentarios instantáneos * no * para proteger su aplicación de las entradas mal formadas. –

Respuesta

45

Apenas añada el espacio a la []:

var regex = /^[a-zA-Z ]*$/; 
+3

tener solo caracteres de espacio también se corresponderá con esta expresión regular –

+1

pero esto también aceptará el campo con solo espacio sin ningún alfabeto, ¿cómo evitar esta condición? –

+0

use la función trim() –

13

Esto funcionará:

[a-zA-Z][a-zA-Z ]+ 
+3

A primera vista, sentí que tener 2 agrupaciones era redundante, pero luego me di cuenta de que su respuesta tiene el beneficio de forzar la entrada para que comience con un caracter alfabético. + 1'ed. ¡Gracias! – stefgosselin

-1

Esto funcionará para no permitir espacios al principio y acepta caracteres, números y caracteres especiales

/(^\w+)\s?/ 
+0

OP proporcionó 'nombre de la universidad' como un ejemplo y su expresión regular no coincide con el texto completo, solo la primera palabra. Esto también coincidiría con 'word @ $% & /', que no debería ser – Mariano

0

Esto permitirá el espacio entre los caracteres y no permitirá números o caracteres especiales ters. Tampoco permitirá el espacio al principio y al final.

[a-zA-Z][a-zA-Z ]+[a-zA-Z]$ 
+1

. Si desea validar todo el texto del tema, debe anclarlo a '^'. Y es posible que desee mencionar que no permitirá que una cadena consista en solo 1 letra. También use el formato de código – Mariano

+0

Esto permite espacios al comienzo de la línea – Diego

0

Esto aceptará la entrada con alfabetos con espacios entre ellos pero no solo espacios. También funciona para tomar entradas de un solo carácter.

[a-zA-Z] + ([\ s] [a-zA-Z] +) *

+0

¿Lo intentó? No acepta espacio Pero coincide con 'a; bb, cc: d.eee? F§gga' – Toto

+0

Gracias por señalar eso. Editó la respuesta con una pequeña corrección. –

Cuestiones relacionadas