2011-01-20 18 views
13

Necesito expresiones regulares para validar cadenas alfanuméricas con una longitud de 3-5 caracteres. Intenté seguir regex encontrado desde la web, pero ni siquiera capturó alfanuméricos correctamente.JavaScript regex para cadena alfanumérica con longitud de 3-5 caracteres

var myRegxp = /^([a-zA-Z0-9_-]+)$/; 
if(myRegxp.test(value) == false) 
{ 
    return false; 
} 
+2

Considere aprender a leer expresiones regulares para que pueda averiguar cuáles satisfacen sus necesidades y cuáles no. O mejor aún, para que puedas escribir la tuya. – BoltClock

+1

Esa es una buena idea, pero no tengo tiempo para hacer esta tarea, pero por supuesto eso es lo que tendré que hacer. – newbie

Respuesta

44

añadir {3,5} a su expresión que significa la longitud entre 3 y 5

/^([a-zA-Z0-9_-]){3,5}$/ 
+0

¿necesitas el paréntesis? – EralpB

+0

@EralpB sí, necesitamos paréntesis ('()') para verificar la longitud de un alfanumérico como un todo –

4

Habría que definir exactamente alfanuméricos, pero

/^(\w{3,5})$/ 

debe coincidir con cualquier dígito/carácter/_ combinación de longitud 3-5.

Si también necesita el tablero, asegúrese de escapar de ella ( \-) añadir que, como este::

/^([\w\-]{3,5})$/ 

también: la ^anclaje significa que la secuencia tiene que empezar en el comienzo de la línea (cadena de caracteres) y el $ que finaliza al final de la línea (cadena de caracteres). Por lo tanto, su cadena value no debe contener nada más, o no coincidirá.

+1

No necesita escapar del tablero si es el primer o el último carácter dentro de una clase de caracteres. –

+0

No sabía eso (y he estado usando regex durante décadas ;-). Gracias. Pero tampoco duele, ¿verdad? –

0

En primer lugar este script de prueba que tienen las cuerdas N caracteres de 3 a 5.

Para en varios idiomas (árabe , Ucrania) que Must uso de este

var regex = /^([a-zA-Z0-9_-\u0600-\u065f\u066a-\u06EF\u06fa-\u06ff\ufb8a\u067e\u0686\u06af\u0750-\u077f\ufb50-\ufbc1\ufbd3-\ufd3f\ufd50-\ufd8f\ufd92-\ufdc7\ufe70-\ufefc\uFDF0-\uFDFD]+){3,5}$/; regex.test('мшефн'); 

Otros sabio el siguiente es para Inglés Alphannumeric solo

/^([a-zA-Z0-9_-]){3,5}$/ 

PS la dosis anterior no aceptar caracteres especiales

una última cosa por encima de la dosis no toma el espacio como prueba de que se producirá un error si no hay espacio si desea que el espacio a continuación, añadir después del 0-9 \ s

\s 

Y si quieres comprobar la longitud de todas las cuerdas, agrega punto.

var regex = /^([a-zA-Z0-9\[email protected],!=%$#&_-\u0600-\u065f\u066a-\u06EF\u06fa-\u06ff\ufb8a\u067e\u0686\u06af\u0750-\u077f\ufb50-\ufbc1\ufbd3-\ufd3f\ufd50-\ufd8f\ufd92-\ufdc7\ufe70-\ufefc\uFDF0-\uFDFD]).{1,30}$/; 
Cuestiones relacionadas