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.';
}
$name='Jan Brzęczyszczykiewicz';
if(preg_match('/^[\pL \'-]*$/u',$name)){
echo 'Imię i nazwisko jest poprawne.';
}else{
echo 'Imię i nazwisko zawiera niedozwolone znaki.';
}
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.
Komentarze / Comments
…
Dodaj / Add