Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_match walidacja nazwiska
Forum PHP.pl > Forum > PHP
gandziorz
Witam,
Jak powinno wyglądać walidacja nazwiska?
Chodzi o to że pierwsza litera musi być duża, reszta mała.

Nie mogę wyczaić.
skowron-line
  1. $a = substr($nazwisko, 0, 1);
  2.  
  3. var_dump($a == strtoupper($a));

prościej to już się chyba nie da
gandziorz
Cytat(skowron-line @ 14.06.2013, 12:13:17 ) *
  1. $a = substr($nazwisko, 0, 1);
  2.  
  3. var_dump($a == strtoupper($a));

prościej to już się chyba nie da


Heh, ale całą reszte bierze szlag bo przepuści takie coś jak "Kas*/*?!" dlatego chce wyłacznie za pomoca preg_match.
redeemer
  1. var_dump( preg_match('#^[A-Z][a-z]+$#', $nazwisko) );
Należy również podkreślić, żę mogą wystąpić nazwiska dwuczłonowe. i zostawiam to jako "zadanie domowe" dla autora :-)
erix
I należy również podkreślić, że tutaj odpadają nazwiska z polskimi znakami, gdyż diakrytyki nie mieszczą się w klasie znaków alfabetu wyrażeń regularnych.
gitbejbe
@up .... ciekawe

preg_match( '/^[a-ząćęłńóśźż]+$/ui', $nazwisko )
mstraczkowski
Nie uważacie że walidacja imienia / nazwiska / numeru buta to już lekka przesada ?
Brakuje mi jeszcze tyko tego, abym przy jakiejś rejestracji otrzymał komunikat:

Cytat
Twoje nazwisko jest nieprawidłowe !
!*!
Cytat(mstraczkowski @ 20.06.2013, 08:37:09 ) *
Nie uważacie że walidacja imienia / nazwiska / numeru buta to już lekka przesada ?
Brakuje mi jeszcze tyko tego, abym przy jakiejś rejestracji otrzymał komunikat:

Rozumiem, że pasuje Ci jak ktoś wpisuje Kow4lski do formularza.

Cytat
preg_match( '/^[a-ząćęłńóśźż]+$/ui', $nazwisko )


lub w razie gdyby nazwiska były połączone

Cytat
/^[\w]+$/'
Crozin
@gitbejbe: OK, rozwiązałeś problem z polskimi znakami diakrytycznymi. Pozostało Ci jeszcze ze 100 alfabetów, posiadających podobne znaki. PHP-owskie wyrażania regularne posiadają wsparcie dla Unikodu, nie wiem więc dlaczego nikt nie zwrócił do tej pory uwagi na tę podstawową rzecz: http://php.net/manual/en/regexp.reference.unicode.php

@gandziorz: Pamiętaj, że nazwisko nie koniecznie musi zaczynać się wielką literą, np. Ludwig van Beethoven (tak, do tej pory w niektórych krajach stosuje się takie nazwiska), nazwisko może być wieloczłonowe, może zawierać myślniki, apostrofy czy nawet przecinki i kropki. Również skłaniam się w stronę zasugerowaną przez @mstraczkowski - nie przesadzaj przy walidacji tutaj, bo bardzo łatwo jest uprzykrzyć komuś życie później (jak na przykład mi robią to niektóre niepolskie strony, nie przepuszczając mojego nazwiska ze względu na obecność polskich znaków). Jeżeli bardzo zależy Ci na poprawności podawanych danych, przy ich wprowadzaniu oznacz je jako "podejrzane", a następnie ręcznie sprawdź - ale użytkownikowi niczego nie blokuj.
gitbejbe
no to zamiast bawić się w wskazywanie co ma być w inpucie, to w takim razie lepiej i łatwiej jest napisać czego ma nie być.

co do samego nazwiska, to popieram fakt, że jest to kłopotliwy temat. Lepiej dac wolną rękę dla użytkownika. Nie wydaje mi się, że ludzie nie mają już na tyle własnej godności, żeby swoje imię czy nazwisko pisać z małej litery.
erix
~gitbejbe, wystarczyło uważnie przeczytać, co napisałem odnośnie klas znaków.

Cytat
Nie wydaje mi się, że ludzie nie mają już na tyle własnej godności, żeby swoje imię czy nazwisko pisać z małej litery.

Pamiętaj, że z internetu korzystają nieraz osoby starsze, które nie są na tyle uważne, żeby pilnować wielkości znaków. Dla nich nieraz wciśnięcie prostej kombinacji klawiszy (więcej niż jeden naraz), to wyzwanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.