Jak sprawdzić poprawność kodu pocztowego?
HTML + CSS, PHP + MySQL Aktualizacja: 27.07.2017

Jak sprawdzić poprawność kodu pocztowego?

Tworząc stronę internetową często powstaje konieczność dodania formularza do kontaktu, zbierania danych, rejestracji. W takim formularzu na całość składa się nierzadko kod pocztowy. Jak zweryfikować czy użytkownik podał poprawny kod pocztowy, czy zachował jego poprawną formę?

Kod pocztowy, inaczej pocztowy numer adresowy to w Polsce ciąg cyfr. Dodawany do adresu, by ułatwiać sortowanie przesyłek. Wprowadzony 1 stycznia 1973 roku. Pierwsza cyfra określa okręg pocztowy, a cały PNA jest przypisany do urzędu pocztowego, albo do poszczególnych ulic i domów.

1. Walidacja za pomocą JavaScript

Poniżej kod JavaScript, który weryfikuje czy użytkownik wprowadził format CC-CCC, gdzie C to cyfra.

<script type="text/javascript">
function sprawdzKodPocztowy(code) {
    if (!code.value.match(/^dd-ddd$/)) {
        code.value="";
        alert("Wprowadzono błędny kod pocztowy");
    }
}
</script>

Ostatnią rzeczą jest kawałek kodu HTML - formularz który wysyła dalej dane, wprowadzone przez użytkownika.

<form action="" name="form" method="post">
<input type="text" name="kodpocztowy" onblur="sprawdzKodPocztowy(this)" />
</form>

2. Walidacja za pomocą HTML5

Najszybszym sposobem jest skorzystanie z HTML5, to rozwiązanie podsunął Comandeer w komentarzu. Do pola formularza należy dodać nowy atrybut pattern. Pozwala określić wyrażenie regularne, który musi być spełnione podczas wpisywania tekstu przez użytkownika. Przy nieprawidłowym wypełnieniu formularza, nie zostanie on wysłany.

<form action="" name="form" method="post">
<input type="kod_pocztowy" pattern="^[0-9]{2}-[0-9]{3}$">
</form>

Zgodnie z powyższym przykładem kod pocztowy musi składać się z dwóch cyfr, potem myślnika i trzech cyfr, np. 00-999.

3. Walidacja za pomocą PHP

Na podstawie powyższego kodu HTML walidacja tym razem za pomocą PHP.

<?php
$sprawdzKodPocztowy = $_POST['kodpocztowy'];
if ( !preg_match('/^[0-9]{2}-?[0-9]{3}$/Du', $sprawdzKodPocztowy) ) {
    print 'Wprowadzono błędny kod pocztowy';
}
?>
Jeśli nie znasz kodu pocztowego dla określonej lokalizacji, ulicy i miasta, możesz go szybko znaleźć na stronie http://poczta-polska.pl/kody/.

Autor: . Tagi: , , , .

3
Dodaj komentarz

avatar
2 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Tomasz SmykowskiBartosz StefanickiComandeer Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

najnowszy najstarszy oceniany
Tomasz Smykowski
Gość

Walidacja kodu pocztowego (polskiego) w JS nie działa
Poprawny kod powinien wyglądać mniej więcej tak:

function sprawdzKodPocztowy(domObject)
{
if (czyKodPocztowyPoprawny(domObject.value))
{
domObject.value = "";
alert("Wprowadzono błędny kod pocztowy. Wprowadź kod pocztowy w formacie XX-XXX np. 82-823");
}
}

function czyKodPocztowyPoprawny(code) {
return code.match(/^[0-9]{2}-[0-9]{3}$/);
}

Comandeer
Gość

a nie ładniejsze jest wyrażenie postaci d{2}-d{3}? ;) + nowy atrybut [pattern] z HTML5 i wgl pozbywamy się JS-a.

Bartosz Stefanicki
Gość

Dzięki za propozycje, uzupełniłem poradę :-)