Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: regexp ("a" w dowolnym miejscu w ciągu znaków)
Forum PHP.pl > Forum > PHP
adamantd
Witam. Potrzebuję zrobić sprawdzenie ciągu znaków w którym dopuszczalne są cyfry oraz znaki .:;- (mogą one być użyte raz lub wcale) a w tym wszystkim musi być co najmniej jedna litera a w dowolnym miejscu.

  1.  
  2.  
  3. $e1 = '234-;34;32a4ag.23';
  4. $e2 = '234-a;34;324.23';
  5. $e3 = '234-;344;3524.23';
  6.  
  7.  
  8. function reg($str){
  9.  
  10. if(preg_match("/^[\d\-\:\;\,\.a]*$/", $str)){
  11. if(preg_match("/a+/i", $str)){
  12. return 'spoko';
  13. } else {
  14. return 'brakuje a';
  15. }
  16.  
  17. } else {
  18. return 'dupa';
  19. }
  20.  
  21. }
  22.  
  23. echo reg($e1);//ok
  24. echo reg($e2);//ok
  25.  



Powyższy przykład działa ale ja chcę zrobić to w jednym wyrażeniu regularnym a nie wiem jak coś typu:

  1.  
  2. if(preg_match("/^[\d\-\:\;\,\.(a+)]*$/i", $e3)){
  3. echo 'spoko';
  4. } else {
  5. echo 'brakuje a';
  6. }
  7.  


Ten przykład nie działa, ponieważ w $e3 nie ma znaku "a" a preg_match zwraca true -czy da się to jakoś zrobić?

p.s. -to jedyne forum gdzie nie działa tabulacja........ :/

Nikt nie będzie znał odpowiedzi? Pytam z ciekawości odświeżając tego posta, ponieważ już rozwiązałem problem na inny sposób..
cudny
preg_match("/^[\d\-\:\;\,\.a]*a[\d\-\:\;\,\.a]*$/i", $str)
adamantd
i łamigłówka rozwiązana -nie wpadłem na to smile.gif To prostsze niż proste ;P
cudny
Bywa smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.