Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z wyrażeniami regularnymi do walidacji, problem z ereg() i ereg_replace()
kemot
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 27.09.2007

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


Po długiej przerwie wziąłem się ponownie za pisanie skryptów w php. Ogólnie wyglada to tak że jest formularz w którym edytuje lub wprowadza się dane i chciałem zrobić do tego walidacje. I tu mam problem. Próbowałem na różne sposoby:

Kod
if (!ereg('^[a-zA-Z]{3,30} , $imie_valid_c)) {
print '<span class="blad">- Podane <b>imię</b> zawiera niedozwolone znaki bądź nie mieści się w przedziale od 3 do 30 znaków.</span><br/>'.$imie_valid_c.'';
$blad=true;
}

Ale potrzebowałem też polskich znaków bo podobna walidacje mam dla nazwiska (z resztą skrypt nie przepuszczałby takich imion jak Łucja czy Błażej). Dlatego zrobiłem tak:
Kod
if (!ereg('^[a-zA-Ząćęłń󜿟ƣŃÓŚŻŹ]{3,30} , $imie_valid_c)) {
print '<span class="blad">- Podane <b>imię</b> zawiera niedozwolone znaki bądź nie mieści się w przedziale od 3 do 30 znaków.</span><br/>'.$imie_valid_c.'';
$blad=true;
}

Ale mimo to w skrypcie wyświetla błąd. Spróbowałem więc kasować wszystkie znaki poza tymi w ereg() za pomocą ereg_replace()
Kod
$imie_valid_c = ereg_replace('[^a-zA-Ząćęłń󜿟ƣŃÓŚŻŹ]', '', $imie_valid_c);

Po wyświetleniu zmiennej $imie_valid_c okazało się, że polskie znaki dodane po a-zA-Z również zostały usunięte choć działanie skryptu powinno byc takie że usuwa z ciągu znaków wszystko poza znakami w []. Wpisanie tam całego alfabetu też nic nie dało. Ktoś wie może co jest grane? Z góry dzięki za pomoc.

Ten post edytował kemot 19.08.2008, 18:02:58
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 20:09