2010-03-15 35 views
8

¿Cómo puedo validar rápidamente si una cadena es solamente alfabético, por ejemploValidación única cadena alfabético en Javascript

var str = "!"; 
alert(isLetter(str)); // false 

var str = "a"; 
alert(isLetter(str)); // true 

Editar: Me gustaría añadir entre paréntesis es decir () a una excepción, por lo

var str = "("; 

o

var str = ")"; 

también debería devolver verdadero.

Respuesta

33

Expresión regular para requerir al menos una letra, o paren, y sólo permiten letras y paren:

function isAlphaOrParen(str) { 
    return /^[a-zA-Z()]+$/.test(str); 
} 

Modificar la expresión regular como sea necesario:

  • /^[a-zA-Z()]*$/ - también devuelve verdadero para un vacío cadena
  • /^[a-zA-Z()]$/ - solo devuelve verdadero para caracteres individuales.
  • /^[a-zA-Z() ]+$/ - también permite espacios
+0

'\ s' y sus primos dentro de los juegos de caracteres no son ampliamente compatibles con otros sabores de expresión regular, por lo que tengo la tendencia a evitarlo, aunque funcionará bien en JavaScript – gnarf

+0

La bandera 'i' también puede ser apropiada. –

+1

@Justin Johnson - Yup - '/^[a-z()] + $/i.test (str);' funciona también. – gnarf

2

Si la memoria sirve esto debería funcionar en javascript:

function containsOnlyLettersOrParenthesis(str) 
(
    return str.match(/^([a-z\(\)]+)$/i); 
) 
+0

sin necesidad de escapar de'() 'en el conjunto de caracteres. – gnarf

1

usted podría utilizar expresiones regulares ...

funciones IsLetter (str) { return str.match ("^ [a-zA-Z()] + $"); }

Vaya ... mi mala ... esto está mal ... debe ser

functions isLetter(str) { 
    return "^[a-zA-Z()]+$".test(str); 
} 

Como dice la otra respuesta ... lo siento

Cuestiones relacionadas