2012-10-07 15 views
7

Eventuali duplicati:
Canada postal code validationjavascript regex per codice postale canadese

ho bisogno javascript regex per la convalida codice postale/zip canadese. Il formato del codice postale del Canada è 'A1A 1X1' or 'a1a1x1'. Tuttavia non include le lettere D, F, I, O, Q o U. Ne ho trovate poche ma quelle erano in 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 aggiunto: più spazi in-fra sono opzionali, case-insensitive – Dathan

+0

Da segnalare che una buona domanda dovrebbe mostrare un po 'di sforzo da parte vostra. ;-) – Tass

+1

@Tass vedere la mia risposta sotto – DarknessBeginsHere

risposta

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

Potrebbe voler spogliare gli spazi a sinistra/destra (o anche al centro). –

+0

Lo spazio nel mezzo è facoltativo, quindi fa bene il lavoro. Basta regolare i valori di ritorno su vero (primo) e falso (ultimo). Quindi, tieni presente che questa funzione verifica l'espressione regolare sul valore "postale" variabile. Ho reeditato la terza riga come segue: if (regex.test (postal)) ... fornendo direttamente il valore alla funzione. –

+1

Tieni presente che l'assenza di utilizzo di determinati caratteri potrebbe cambiare nel tempo in quanto sarebbe necessario un nuovo codice postale. –

-3

Poiché le parole eccezionali non hanno nulla in comune, le parole valide devono essere scritte una per una.

[ABCEGHJKLMNPRSTVWXYZ] 

seguito da una cifra

\d 

E questo per tre volte

{3} 

Infine si aggiungono "i" per-maiuscole e minuscole

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

La prima cifra non può essere Z, per esempio. – Qualcuno

Problemi correlati