[PHP]Sprawdzenie czy podane imię jest prawidłowe

Witam!

Tak jak w temacie chcę sprawdzić imię:

1.Musi zaczynać się wielką literą.

2.Reszta liter nie ma znaczenia.

3.Dozwolone są tylko litery.

 

 

Próbowałem coś takiego:

if(!preg_match(/^[A-Z]+(a-z)$/), $zmienna){
   
   echo $ZMIENNA_ZAWIERAJACA_TEKST

}

Próbowałem najróżniejszych rzeczy,sposobów ale zawsze if daje mi komunikat “Imię nieprawidłowe”.Siedzę nad tym już z 1,5h i zachodzę w głowę jak rozwiązać problem.Tak wgl to PHP uczyłem się trochę dawno i sporo zapomniałem bo kiedyś wszystko robiłem ereg() ale teraz podobno lepiej jest używać preg_match().Ktoś mógłby mi wytłumaczyć opcje dostępne dla tej funkcji czyli jak deklaruje się np pojedynczy znak,zakres znaków,pojedynczy znak z podanego przedziału itd.

Warunek w preg_match jest błędny, taki jest poprawny:

if(!preg_match('/^[A-Z][a-z]+$/', $zmienna){

Czyli jedna wielka litera i co najmniej jedna mała

 

P.S. A wracając do Twojego przykładu, to poprawnie byłoby potraktowane np. słowo “Ka-z” oraz “ABCDa-z”.

Nie takie wyrażenie regularne. To, które masz, dopasowuje ciągi znaków takie, jak np.

SEBKORa-z

Zgaduję, że miałeś w zamierzeniu:

^[A-Z][a-z]+$

Jeśli chodzi o Polskę, dobrze byłoby pewnie uwzględnić też imiona zaczynające się na litery takie, jak Ł, Ś, czy Ż, czy podobnie - zawierające litery “ogonkowe” gdzieś dalej.

Wyrażenia regularne PCRE w PHP

PHP/Podstawy wyrażeń regularnych

Polskie litery w wyrażeniach regularnych

Dziękuję, przebuduję instrukcję i zapytam się Was jak będę miał problem. :slight_smile: Aktualnie proszę o śledzenie wątku.