Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][inne] wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
@rtur
Chciałbym aby użytkownicy mogli wpisać w formularz tylko określone znaki (cyfry, litery małe i duże oraz podkreślniki myślniki i spacje). Użytkownik może wpisać "sz k ł o" ale nie może wpisać "_- " albo "---", albo " ". Najprościej mówiąc pole może zawierać podkreślniki, myślniki i spacje, ale tylko w kombinacji z przynajmniej jedną literą alfabetu lub cyfrą.
jak w taki przypadku powinnno wyglądąć wyrażenie regularne?
Fifi209
Wszystko zależy jak to połączenie ma wyglądać...
Pawel_W
http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych

nie ma nic za darmo winksmiley.jpg
@rtur
Cytat(Pawel_W @ 3.01.2010, 13:29:58 ) *


Dzieki poczytam.
Co nieco kojarzę, nie wiem jak oznaczyć, musi wystąpić i może, ale nie musi smile.gif
cojack
Kod
^[a-zA-Z0-9]{1,}


cojack@cojack-laptop:~$ php -r '$a="---"; if(preg_match("/^[a-zA-Z0-9]{1,}/",$a)) echo "jest\n"; else echo "nie ma\n";'
nie ma
cojack@cojack-laptop:~$ php -r '$a=""; if(preg_match("/^[a-zA-Z0-9]{1,}/",$a)) echo "jest\n"; else echo "nie ma\n";'
nie ma
cojack@cojack-laptop:~$ php -r '$a=" "; if(preg_match("/^[a-zA-Z0-9]{1,}/",$a)) echo "jest\n"; else echo "nie ma\n";'
nie ma
cojack@cojack-laptop:~$ php -r '$a="__-"; if(preg_match("/^[a-zA-Z0-9]{1,}/",$a)) echo "jest\n"; else echo "nie ma\n";'
nie ma
cojack@cojack-laptop:~$ php -r '$a="szkło"; if(preg_match("/^[a-zA-Z0-9]{1,}/",$a)) echo "jest\n"; else echo "nie ma\n";'
jest
cojack@cojack-laptop:~$ php -r '$a="s z k ł o"; if(preg_match("/^[a-zA-Z0-9]{1,}/",$a)) echo "jest\n"; else echo "nie ma\n";'
jest
reaktor
Mysle, ze moglo Ci chodzic o cos w tym rodzaju:
  1. $reg1 = "#^[a-zA-Z0-9\-\_\ ]+$#";
  2. $reg2 = "#[\-\_\ ]{2,}#";
  3.  
  4. if ((preg_match($reg1, $napis)) and !(preg_match($reg2, $napis))) {
  5. echo "OK";
  6. }
  7. else {
  8. echo "Dupa zbita";
  9. }

Najpierw sprawdzasz czy napis zawiera tylko dozwolone znaki, a potem szukasz czy wystapila niedozwolona kombinacja.
Jesli koniecznie chcesz uzyc jednego patterna, poszukaj w tych tematach z manuala:

http://www.php.net/manual/en/regexp.reference.assertions.php
http://www.php.net/manual/en/regexp.refere...conditional.php
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.