Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_match tylko cyfry?
mskiba
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 28.04.2013

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


Czemu to nie dziala:

  1. $product_code = "Z 11           0001335702";
  2.  
  3. $nr_uzyt = substr($product_code,-10);
  4.  
  5. if(preg_match("|^[0-9]$|D",$nr_uzyt))
  6. {
  7. echo $nr_uzyt.": yes";
  8. }
  9. else{
  10. echo $nr_uzyt.": No";
  11. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Nie działa, bo Twój wzorzec usiłuje dopasować coś takiego:
Kod
początek, dowolna cyfra, koniec

Będzie to pasowało do takich ciągów znaków jak 2, 5, 0, 8, a nie będzie nawet do takich jak 21, 88 itd.

Spróbuj tak:
  1. if(preg_match("|[0-9]+|",$nr_uzyt))


Dodałem plus za wzorcem cyfry, bo chcesz dopasować dłuższy ciąg cyfr niż jednocyfrowy, prawda? Usunąłem też flagę D, bo nigdy o takiej nie słyszałem, a może się mylę?
Go to the top of the page
+Quote Post
robertpiaty
post
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

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


Poza tym zamiast | używaj / Znak | oznacza "lub". Początek i koniec wyrażenia regularnego oznacza się znakami /
  1. if(preg_match("/[0-9]+/",$nr_uzyt))
Go to the top of the page
+Quote Post
kreatiff
post
Post #4





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


Cytat(robertpiaty @ 8.03.2015, 14:03:34 ) *
...Początek i koniec wyrażenia regularnego oznacza się znakami /
Jak najbardziej można stosować inne znaki. Wszystko rozchodzi się o ewentualne zastosowanie "ucieczki" przed znakami służącymi za separator, ale także znajdującymi się we wzorze. Sam preferuję #, bo / występuje zbyt często w dopasowanych wzorach, a dzięki temu nie muszę przed sleszami stosować znaku ucieczki, przez co wyrażenie jest dla mnie ciut bardziej czytelne.

Ten post edytował kreatiff 8.03.2015, 20:03:48
Go to the top of the page
+Quote Post

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: 26.12.2025 - 12:35