2010-12-02 7 views
7

tengo una expresión regular simple:JavaScript expresión regular - dos [az] seguido de tres [0-9] única

[A-z]{2}[0-9]{3})$/g dentro de los siguientes:

regForm.submit(function(){ 
    if ($.trim($('#new-usr').val()).match(/([A-z]{2}[0-9]{3})$/g)) { 
    alert('No'); 
    return false; 
    } 
}); 

Esto está leyendo correctamente que algo como 'ab123' da una alerta y 'ab1234' no lo hace. Sin embargo, 'abc123' sigue emitiendo la alerta. Lo necesito así que solo lanza la alerta cuando solo son 2 letras seguidas de tres números.

Respuesta

11

Trate /^[A-z]{2}[0-9]{3}$/g lugar.

Debe especificar que toda la cadena debe coincidir. De lo contrario, obtendrá la parte resaltada correspondiente: a bc123.

(I omite el () 's, ya que realmente no necesita el grupo.)

Por cierto, ¿está seguro de que desea [A-z] y no sólo [A-Za-z]?

7

La clase de caracteres [A-z] probablemente no sea lo que necesita.

¿Por qué?

La clase de caracteres [A-z] coincide con algunos caracteres no alfabéticos como [, ] entre otros.

JS fiddle link para probar esto.

This W3school tutorial lo recomienda incorrectamente.

Si necesita sólo letras en minúscula utilizan [a-z]
Si necesita sólo letras mayúsculas utilizan [A-Z]
Si necesita tanto para uso: [a-zA-Z]

Si desea identificar una cadena si tiene 2 letras seguidas de 3 dígitos en cualquier lugar en la cadena, basta con retirar el anclaje final $ de su patrón:

[a-z]{2}[0-9]{3} 

Si desea identificar una cadena si tiene 2 letras seguidas de 3 dígitos y nada más uso tanto se inicia el ancla y el ancla ^ final $ como

^[a-z]{2}[0-9]{3}$ 
+0

Hola, era una cadena de exactamente dos a-z seguidos por tres 0-9. Aclamaciones. –

+0

La clase de caracteres que estoy usando '\t Encuentra cualquier carácter de mayúscula A a minúscula z' como se encuentra en http://www.w3schools.com/jsref/jsref_obj_regexp.asp. ¿No es esto recomendable? –

+0

@Scott: no es recomendable.Por favor mira mi respuesta actualizada. – codaddict

1

Alternativamente, puede utilizar:

/\b([A-z]{2}[0-9]{3})\b/g 

si su cadena contiene varias palabras y que está tratando de coincidir con una palabra.

Cuestiones relacionadas