Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] preg_match
owned
post 25.08.2009, 13:58:56
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 27.12.2007

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


Witam
Jak za pomocą funkcji preg_match sprawdzić czy string $zmienna zawiera:
Liczby 0-9
Znaki ~!@#$%^&*()-=+.... itp;

Prosiłbym o pomoc bo nigdy nie bawiłem się preg_match

Ten post edytował owned 25.08.2009, 13:59:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
erix
post 25.08.2009, 16:47:38
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To może najpierw zobacz, na czym to polega...?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
owned
post 25.08.2009, 17:27:51
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 27.12.2007

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


chodzi mi o ułożenie regexp
Go to the top of the page
+Quote Post
Pawel_W
post 25.08.2009, 17:32:56
Post #4





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_...żeń_regularnych

click biggrin.gif
Go to the top of the page
+Quote Post
owned
post 25.08.2009, 17:47:28
Post #5





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 27.12.2007

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


trochę kiepsko jest to tam wyjaśnione. Będę o tym jeszcze czytał. Czy teraz nie mógłby mi ktoś napisać gotowca ? Chyba nie jest aż tak skomplikowany.
Go to the top of the page
+Quote Post
Pawel_W
post 25.08.2009, 17:50:38
Post #6





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

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


masz tam napisane, klasy znaków...

takie trudne?

  1. $dane = 'jakis_tekst';
  2.  
  3. $pattern = '/[0-9\@\(\)]/';
  4.  
  5. if(preg_match($pattern, $dane))
  6. echo 'zawiera';


w $pattern masz tylko parę znaków dla przykładu, nie wiem dokładnie przed którymi wstawia się \, więc musisz popróbować winksmiley.jpg
Go to the top of the page
+Quote Post
Fifi209
post 25.08.2009, 18:00:50
Post #7





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

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


@pawel
Przed tymi, które są zarezerwowane haha.gif

@topic
http://wyrazenia-regularne.pl/
Ludzie chwalili tą stronę, więc i Tobie daję.


--------------------
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
owned
post 25.08.2009, 18:02:39
Post #8





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 27.12.2007

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


no ok fifi biore się za lekturę. Zastanawiałem się jeszcze nad tym:

Zrobić tablicę z 1-9 i znakami specjalnymi.
Rozbić string w którym chcę szukać również na tablicę i porównać obie. Co Wy na to ?

Ten post edytował owned 25.08.2009, 18:02:59
Go to the top of the page
+Quote Post
Fifi209
post 25.08.2009, 18:05:44
Post #9





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

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


Nie wiem po co, skoro masz wyrażenia regularne. A iterowanie po wszystkich elementach n razy nie będzie dobrym pomysłem.

gdzie n to długość stringu do sprawdzenia


--------------------
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
owned
post 25.08.2009, 19:57:43
Post #10





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 27.12.2007

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


ale znaki specjalne dalej nie wiem jak sprawdzić... mam na myśli
~!@#$%^&*() itp

preg_match('/[0-9~!@#$%^&*()_+-={}|;:"<>,.?]/',$zmienna)

co jednak z ' [ ', ' ] ', ' \ ', ' ' ', ' " ', ' / ' ?
Go to the top of the page
+Quote Post
sweter
post 25.08.2009, 20:11:21
Post #11





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

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


Cytat
Jak za pomocą funkcji preg_match sprawdzić czy string $zmienna zawiera:
Liczby 0-9
Znaki ~!@#$%^&*()-=+.

Może interesują Cię wszystkie znaki oprócz liter?
  1. preg_match("/[^A-Za-z]*/", $zmienna)


--------------------
Go to the top of the page
+Quote Post
owned
post 25.08.2009, 20:36:30
Post #12





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 27.12.2007

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


Chcę validować formularz pod kątem cyfr i znaków specjalnych. Jeżeli będzie on takowe zawierał to ma wypluć błąd i tyle.

ok dałem radę

  1. function valid_tylko_litery($atrybut){
  2. if(preg_match("/[^A-Za-z]/", $atrybut)){
  3. return TRUE;
  4. }else {
  5. return FALSE;
  6. }
  7. }
Go to the top of the page
+Quote Post
Fifi209
post 26.08.2009, 15:57:00
Post #13





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

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


To masz złe wyrażenie...

/[^A-Za-z]/

Oznacza, że nie może być tego ;p
Bardziej:

#^[a-z]+$#i


--------------------
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
erix
post 26.08.2009, 16:28:52
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




ctype_alpha


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 15.06.2025 - 02:14