Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][inne] wyrażenia regularne, cyfry, litery małe i duże oraz podkreślniki myślniki i spacje
@rtur
post 3.01.2010, 10:24:56
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


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?


--------------------
Artur
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Fifi209
post 3.01.2010, 12:30:31
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Wszystko zależy jak to połączenie ma wyglądać...


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Pawel_W
post 3.01.2010, 13:29:58
Post #3





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych

nie ma nic za darmo winksmiley.jpg
Go to the top of the page
+Quote Post
@rtur
post 3.01.2010, 14:24:55
Post #4





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


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


--------------------
Artur
Go to the top of the page
+Quote Post
cojack
post 3.01.2010, 19:08:47
Post #5





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


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


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
reaktor
post 7.01.2010, 17:18:29
Post #6





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 2.01.2010

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


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 10:05