Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_match
Forum PHP.pl > Forum > Przedszkole
owned
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
erix
To może najpierw zobacz, na czym to polega...?
owned
chodzi mi o ułożenie regexp
owned
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.
Pawel_W
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
Fifi209
@pawel
Przed tymi, które są zarezerwowane haha.gif

@topic
http://wyrazenia-regularne.pl/
Ludzie chwalili tą stronę, więc i Tobie daję.
owned
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 ?
Fifi209
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
owned
ale znaki specjalne dalej nie wiem jak sprawdzić... mam na myśli
~!@#$%^&*() itp

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

co jednak z ' [ ', ' ] ', ' \ ', ' ' ', ' " ', ' / ' ?
sweter
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)
owned
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. }
Fifi209
To masz złe wyrażenie...

/[^A-Za-z]/

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

#^[a-z]+$#i
erix
ctype_alpha
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.