Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] preg_match (PROSTE)
koziet
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.12.2008
Skąd: Dublin - Ireland

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


Dla kogoś kto jest obcykany w temacie to będzie śmiesznie proste ale ja nie korzystałem dotychczas z preg_match i proszę o pomoc. Mam ciąg znaków, który powinien składać się wyłącznie z cyrf oraz znaków przecinka, np. "34,5,15,6,122,10,1,8".
Ponadto pierwszy i ostatni znak powinny być cyframi.
Jak napisać pod to preg_match ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
szagi3891
post
Post #2





Grupa: Zarejestrowani
Postów: 109
Pomógł: 9
Dołączył: 12.03.2007
Skąd: kraków/tarnobrzeg/baranów/suchorzów

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


Ja bym natomiast zaproponował wyrażenie :
#^[0-9]([0-9,]*[0-9])?$#si

Obejmuje ono również przypadki gdu nie ma żadnego przecinka. Można to szybko sprawdzić uruchamiają poniższy skrypt :

  1. <?php
  2. print "<pre>";
  3. $dane = array();
  4.  
  5. $dane[] = '34,5,15,6,122,10,1,8';
  6. $dane[] = '34,5,15,6,122,10,1.8';
  7. $dane[] = '34,5,15,6,1g22,10,1,8';
  8. $dane[] = '34,5,1dfgfd5,6,122,10,1,8';
  9. $dane[] = '34,5,15,6,122,10gdfg,1,8';
  10. $dane[] = '34,5,15,6,dfgfdgd122,10,1,8';
  11. $dane[] = '34,5,15,6,122,10,1,8,';
  12. $dane[] = '3aasasas,5,15,6,122,10,1,8,';
  13. $dane[] = '34,5,15a,6,122,10,1,8,';
  14. $dane[] = 'ę34,5,15,6,122,10,1,8,';
  15. $dane[] = '34,5,15,6,1sdfsdfsd22,10,1,8,';
  16. $dane[] = '34,5,1225,12126,122,121120,11232,8';
  17. $dane[] = '3,8';
  18. $dane[] = '3';
  19. $dane[] = '3.0';
  20.  
  21.  
  22. foreach ($dane as $key => $val) {
  23.    
  24.    if (preg_match('#^[0-9]([0-9,]*[0-9])?$#si', $val))
  25.        print 'ok ';
  26.    else
  27.        print '.. ';
  28.  
  29.  
  30.    if (preg_match('#^[0-9][0-9,]*[0-9]$#si', $val))
  31.        print 'ok ';
  32.    else
  33.        print '.. ';
  34.  
  35.        
  36.    print '- ' . $val . "\n";
  37.    }
  38.  
  39. print "</pre>";
  40. ?>
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: 9.10.2025 - 03:11