Walidacja formatu danych na formularzu

Facebooktwitterpinterestlinkedinmail
dotyczy wersji 2016.1.x; autor: Szymon Patacz

W przypadku rejestracji dokumentów zawierających dane zapisane w określonym standardzie warto zadbać o to, aby format tych danych został zapisany w ten sam sposób niezależnie od osoby wprowadzającej informacje.

Możemy wymusić na użytkownikach, aby każdy zapisywał informacje takie jak kod pocztowy lub numer konta bankowego w określonym formacie. Pomocna jest możliwość zastosowania na atrybutów ograniczenia wpisywanego tekstu wyrażeniem regularnym.

Kod pocztowy

Wykorzystywany w Polsce format kodu pocztowego składa się z 5 cyfr rozdzielonych znakiem "-" po drugiej cyfrze. Możemy sprawdzić czy na formularzu został wpisany odpowiedni ciąg znaków dodając na atrybucie walidację wyrażeniem regularnym jak na poniższym obrazie.

walid_p1

Zapisane w ten sposób wyrażenie regularne nie pozwoli na wpisanie innej wartości w pole niż

"dd-ddd", gdzie d oznacza dowolną cyfrę. W przypadku wprowadzenia innych danych wyświetlony zostanie komunikat podany w polu Treść błędu. W powyższym przykładzie wyświetlamy tekst "Niepoprawny format." oraz link do strony pozwalającej wyszukać polskie kody pocztowe.

walid_p2

W przypadku kiedy w polu mogą pojawić się zagraniczne kody pocztowe możemy dodać odpowiedni dla danego kraju format oddzielając kolejne wyrażenia znakiem "|". Przykładowo wyrażenie regularne zezwalające wprowadzić format polski i niemiecki (5 cyfr) będzie wyglądało:

(\d{2}-\d{3})|(\d{5})

Taki zapis pozwoli na wprowadzanie kodu pocztowego w formacie 12-345 lub 12345.

Numer konta bankowego

Domyślnie w formie elektronicznej numer konta bankowego w Polsce zapisywany jest jako ciąg 26 cyfr. Dla zwiększenia czytelności w numerze rachunku mogą zostać umieszczone  również spacje zgodnie z poniższym zapisem:

XX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX

W przypadku wpisywania przez ręcznie numeru konta bankowego możemy sprawdzać, czy pole zawiera dokładnie 26 cyfr lub 26 cyfr rozdzielonych spacją jak powyżej.

W tym celu w polu walidacji wyrażenia regularnego wpisujemy:

(\d{26})|((\d{2} )(\d{4} ){5}\d{4})

Analogicznie jak w przypadku kodów pocztowych jeżeli wymagane jest dodanie numerów bankowych dla Państw posiadających inny format możemy je dodać do wyrażenia regularnego oddzielając poszczególne wpisy znakiem "|".

Jest to najszybszy sposób na walidację danych wpisanych na formularzu. Dodatkową zaletą takiego rozwiązania jest to, że komunikat o nieprawidłowych danych wyświetlany jest tuż po uzupełnieniu konkretnego pola.