Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_match walidacja nazwiska
gandziorz
post 14.06.2013, 11:09:44
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 20.12.2006

Ostrzeżenie: (0%)
-----


Witam,
Jak powinno wyglądać walidacja nazwiska?
Chodzi o to że pierwsza litera musi być duża, reszta mała.

Nie mogę wyczaić.
Go to the top of the page
+Quote Post
skowron-line
post 14.06.2013, 11:13:17
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  1. $a = substr($nazwisko, 0, 1);
  2.  
  3. var_dump($a == strtoupper($a));

prościej to już się chyba nie da


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
gandziorz
post 14.06.2013, 11:22:11
Post #3





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 20.12.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
redeemer
post 14.06.2013, 13:02:36
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


  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 :-)


--------------------
Go to the top of the page
+Quote Post
erix
post 18.06.2013, 15:42:52
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
gitbejbe
post 20.06.2013, 06:39:50
Post #6





Grupa: Zarejestrowani
Postów: 515
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


@up .... ciekawe

preg_match( '/^[a-ząćęłńóśźż]+$/ui', $nazwisko )
Go to the top of the page
+Quote Post
mstraczkowski
post 20.06.2013, 07:37:09
Post #7





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


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 !


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
!*!
post 20.06.2013, 07:52:49
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


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]+$/'


Ten post edytował !*! 20.06.2013, 08:04:36


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Crozin
post 20.06.2013, 10:58:55
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@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.
Go to the top of the page
+Quote Post
gitbejbe
post 20.06.2013, 11:58:32
Post #10





Grupa: Zarejestrowani
Postów: 515
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
erix
post 20.06.2013, 12:39:23
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 23:41