Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zachowanie się funkcji preg_match
Jozjasz
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 11.09.2009

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


Witam

Ostatnio trenuję z funkcją preg_match. Zachodzę w głowę jednak dlaczego zachowuje się ona następująco, tzn. nie działa

1.
  1. //2. Sprawdź czy występuje dokładnie 3 wystąpienia liery 'a' --> NIE DZIAŁA
  2. if(preg_match('/a{3}/',"aaaaa"))
  3. echo '2. jest';
  4. else
  5. echo '2. nie jest';
  6. echo '<br />';


Skoro jest 5 liter 'a', to skrypcik powinien zwrócić '2. nie jest'. Czy mógłby ktoś mnie oświecić dlaczego tak się nie dzieje?

2.
Chciałem napisać skrypt sprawdzający czy dany string zawiera tylko liczy od 0 do 9. Jednak jeśli poniżej zmienna $a ma więcej niż 12 znaków/cyfr, to zwraca false. Dlaczego tak się dzieje, skad ta magiczna granica 12 znaków.

  1. $a = 790900088190;
  2. //10.
  3. if(preg_match("/^[0-9]+$/",$a))
  4. echo '10. jest';
  5. else
  6. echo '10. nie jest';
  7. echo '<br />';


Za wyjaśnienia wielkie dzięki

Ten post edytował Jozjasz 22.04.2013, 22:05:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jozjasz
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 11.09.2009

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


dzieki

Ale w drugim, ten mój skrtyp w momencie przekroczenia 12 cyfr zwraca FALSE. Gdy jest mniej cyfr zwraca TRUE. Ja chciałem napisać skrypt, który bedzie sprawdzał czy dany string zkłada się tyko i wyłącznie z cyfr od 0 do 9. Nic więcej.

Ale właśnie jak $a ma więcej niż 12 cyfr to zwraca FALSE. A tak przecież nie powinno być! Dlaczego tak sie dzieje?

?
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: 13.10.2025 - 15:04