Wyrażenia regularne sprawdzające występowanie znaków diakrytycznych („ogonków”) – PHP

Autor
Krystian Pietruszka
Data publikacji

Wyrażenie regularne do sprawdzania poprawności zapisu imienia i nazwiska, powinno uwzględniać m.in. zapis z użyciem narodowych znaków diakrytycznych. W języku polskim będą to wszelkie „ą” i „ę” a w innych językach „umlauty” czy np. cyrylica.

Klasyczne wyrażenie (ryc. 1), sprawdza jedynie występowanie znaków alfabetu łacińskiego, nie uwzględnia znaków z ogonkami. Można rozszerzyć podstawowy alfabet dopisując wszystkie znaki jakie chcemy aby były akceptowane przy zapisie imion i nazwisk. Jednak dopisanie wszystkich znaków może być problematyczne jeśli nazwiska będą zapisywane z uwzględnieniem specyficznych, narodowych znaków diakrytycznych. Aby temu zaradzić, można zastosować proste wyrażenie z ryc. 2. Dzięki niemu, oprócz polskich „ogonków”, będą akceptowane różne inne znaki z ogonkami wchodzące w skład narodowych alfabetów. Pomysł pochodzi z dyskusji na Forum Web od użytkownika o nicku WebCm.


	$name='Jan Brzęczyszczykiewicz';
	if(preg_match('/^[a-zA-Z \'-]*$/',$name)){
		echo 'Imię i nazwisko jest poprawne.';
	}else{
		echo 'Imię i nazwisko zawiera niedozwolone znaki.';
	}

Ryc. 1. Skrypt PHP sprawdza czy imię i nazwisko zawiera dozwolone znaki z zakresu alfabetu (bez znaków diakrytycznych) oraz spację, apostrof i znak minus. W wyniku działania skryptu otrzymamy komunikat że imię „Jan Brzęczyszczykiewicz” jest niepoprawne.

	$name='Jan Brzęczyszczykiewicz';
	if(preg_match('/^[\pL \'-]*$/u',$name)){
		echo 'Imię i nazwisko jest poprawne.';
	}else{
		echo 'Imię i nazwisko zawiera niedozwolone znaki.';
	}

Ryc. 2. Skrypt PHP sprawdza czy imię i nazwisko zawiera dozwolone znaki z zakresu alfabetu (z uwzględnieniem znaków diakrytycznych) oraz spację, apostrof i znak minus. W wyniku działania skryptu otrzymamy komunikat że imię „Jan Brzęczyszczykiewicz” jest poprawne.

Prezentowane wyrażenia regularne uwzględniają możliwość wystąpienia znaków specjalnych w postaci: apostrofu, spacji i znaku minus. Wszystkie te znaki można spotkać przy zapisie niektórych imion i nazwisk.

Podobne strony / Similar pages

Komentarze / Comments

Dodaj / Add