
Poniższe wyrażenie regularne sprawdza francuski kod pocztowy w postaci „DDDDD”. Wykorzystane są wszystkie cyfry. Dwie pierwsze oznaczają departament i mieszczą się w zakresie od 01 do 98. Kod poniżej to wyrażenie regularne kodu pocztowego, które kontroluje poprawność formatu.
wyrażenie regularne kodu pocztowego
/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/Proponuję też wyrażenia regularne kodów pocztowych dla innych krajów, wystarczy podmienić wyrażenie na to, którego potrzebujesz.
Belgia
Kody pocztowe w postaci „DDDD”, gdzie pierwsza cyfra to prowincja, a pozostałe sektory doręczeń. Belgijskie kody pocztowe nigdy nie zaczynają się od zera.
/^(?:(?:[1-9])(?:\d{3}))$/Szwajcaria
Cztery cyfry: pierwsza to okręg, druga strefa, trzecia trasa, czwarta numer urzędu pocztowego.
/^[1-9]\d{3}$/Wielka Brytania
Schemat brytyjskiego kodu pocztowego
/^(?:GIR 0AA|(?:(?:(?:A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGK-PRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?\d|(?:(?:E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(?:SW|W)(?:[2-9]|[1-9]\d)|EC[1-9]\d)\d[ABD-HJLNP-UW-Z]{2}))$/iNiemcy
Kody pocztowe w postaci „DDDDD”. Wykorzystane są wszystkie cyfry. Pierwsza odpowiada strefie doręczeń, druga regionowi doręczeń. Pozostałe wskazują okręg doręczeń i miejscowość pocztową.
/^\d{5}$/Hiszpania
Pięć cyfr, dwie pierwsze wskazują prowincję. Trzecia cyfra: duże miasto. Dwie ostatnie: obszary wiejskie.
/^(?:0[1-9]|[1-4]\d|5[0-2])\d{3}$/Włochy
Pierwsza cyfra: region. Druga cyfra: prowincja. Trzecia cyfra: stolica albo prowincja (nieparzysta dla stolicy). Czwarta cyfra: trasa. Piąta cyfra: miejsce na trasie (0 dla małych miejscowości).
/^\d{5}$/Stany Zjednoczone
Kody ZIP w postaci „DDDDD” albo „DDDDD-DDDD”. Wykorzystane są wszystkie cyfry i żadna nie ma szczególnego znaczenia.
/^(?:GIR 0AA|(?:(?:(?:A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGK-PRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?\d|(?:(?:E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(?:SW|W)(?:[2-9]|[1-9]\d)|EC[1-9]\d)\d[ABD-HJLNP-UW-Z]{2}))$/iWersja JavaScript wyrażenia regularnego dla kodu pocztowego
Poprawny format kodu pocztowego to „DDDDD”. Funkcja przyjmuje kod pocztowy jako parametr i porównuje go z wyrażeniem regularnym. Jeśli nie znajdzie dopasowania, walidacja się nie udaje i funkcja zwraca false, a przy dopasowaniu zwraca true.
Funkcja JavaScript z wyrażeniem regularnym kodu pocztowego
/**
* Walidacja kodu pocztowego wyrażeniem regularnym
*
* Jeśli kod pocztowy jest nieprawidłowy, zwróć false
*
* @param postcode
* @return Boolean
*/
function validatePostcode(postcode){
var Reg = new RegExp(/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/i);
return Reg.test(postcode);
}Jak używać tej funkcji JavaScript
Najlepiej użyć jej w instrukcji IF, tak jak poniżej.
if(validatePostcode(postcode)){
alert("Code postal valide");
} else {
alert("Code postal invalide");
}
See the Pen
Untitled by Damien Flandrin (@dam62500)
on CodePen.
Wersja PHP wyrażenia regularnego dla kodu pocztowego
Sprawdzanie kodów pocztowych po stronie front-endu nie wystarczy: ta sama kontrola musi zadziałać na serwerze. Oto snippet w PHP, który waliduje kody pocztowe po stronie serwera.
Funkcja PHP z wyrażeniem regularnym kodu pocztowego
/*
* walidacja kodu pocztowego
* @param $postcode
*/
function isValidPostcode($postcode)
{
return preg_match('/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/i', $postcode);
}Wersja HTML
W HTML-u można zbudować pola, które same pokazują, czy wartość jest poprawna, dzięki atrybutowi pattern w <input>, gdzie wpisujesz wyrażenie regularne kodu pocztowego. Uwaga: to przydaje się wyłącznie do pokazania informacji użytkownikowi, na przykład czerwoną ramką.
<input
name="postcode"
type="text"
pattern="(?:0[1-9]|[1-8]\d|9[0-8])\d{3}"
placeholder="DDDDD"
/>
See the Pen
Walidacja kodu pocztowego wyrażeniem regularnym w HTML by Damien Flandrin (@dam62500)
on CodePen.


