2012-10-07 54 views
7

Duplicar posibles:
Canada postal code validationJavascript expresiones regulares de código postal canadiense

necesito Javascript expresiones regulares para validar código postal/postal canadiense. El formato del código postal de Canadá es 'A1A 1X1' or 'a1a1x1'. Sin embargo, no incluye las letras D, F, I, O, Q o U. Encontré pocas aquí pero estaban en C#.

+1

var tmp = new RegExp (/^(?!. * [DFIOQU]) [A-VXY] [0-9] [AZ] +? [0-9] [AZ] [0-9] $/i) ref: http://my.safaribooksonline.com/9780596802837/id2991897 agregado: los espacios múltiples intermedios son opcionales, no distingue entre mayúsculas y minúsculas – Dathan

+0

Vale la pena señalar que una buena pregunta debe mostrar un poco de esfuerzo de su parte. ;-) – Tass

+1

@Tass ver mi respuesta a continuación – DarknessBeginsHere

Respuesta

12
function checkPostal(postal) { 
    var regex = new RegExp(/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ]()?\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i); 
    if (regex.test(postal.value)) 
     return true; 
    else return false; 
} 
+0

Puede que quieras quitar espacios a la izquierda/derecha (o incluso a la mitad). –

+0

Espacio en el medio es facultativo por lo que hace bien el trabajo. Simplemente ajuste los valores de retorno a verdadero (primero) y falso (último). Entonces, tenga en cuenta que esta función prueba regex en la variable 'postal' 'value'. Reedité la tercera línea de la siguiente manera: if (regex.test (postal)) ... proporcionando el valor a la función directamente. –

+1

Tenga en cuenta que la falta de uso de ciertos caracteres puede cambiar con el tiempo ya que se necesitaría un nuevo código postal. –

-3

Como las palabras excepcionales no tienen nada en común, las palabras válidas deben escribirse una por una.

[ABCEGHJKLMNPRSTVWXYZ] 

seguido de un dígito

\d 

Y esto tres veces

{3} 

Por último añadimos "i" de entre mayúsculas y minúsculas

var regex = /([ABCEGHJKLMNPRSTVWXYZ]\d){3}/i; 
+0

El primer dígito no puede ser Z, por ejemplo. – Qualcuno

Cuestiones relacionadas