Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenie regularne
Forum PHP.pl > Forum > Przedszkole
slaug
Cześć,

Potrzebuję wyrażenie regularne które sprawdzi czy w stringu nie występują następujące znaki
!@#$%^&*()<>?|/\[]{}`~+=
W zasadzie to wszystkie znaki nie będące liczbą, cyfrą bądź znakiem podkreślenia.

Z góry dziękuję za pomoc,

pozdrawiam,
Daniel
Ociu
[a-zA-Z0-9_]
slaug
Ale takie wyrażenie sprawdzi jedynie czy w stringu występują znaki które napisałeś w nawiasie, a nie sprawdzi czy nie występują te o których ja napisałem.

No dobra, wróciłem do domu, nowe spojrzenie na problem i pierwsze rozwiązanie:

[\^\[\]\(\)\{\}\|\*\+?#&!@%]

Generalnie chodzi mi o wykluczenie przegrania pliu, który miałby śmieszne znaki, z którymi mogłby być potem problemy. Zrobiłem z wykorzystaniem powyższego wyrażenia i zdaje się, że działa, ale jak macie jakieś inne propozycje to zarzućcie.

pozdrawiam,
Daniel
s_w_ir
Co Ty masz za problem, Ociu napisał Ci to najprościej jak sie da, chociaż to wypróbowałeśquestionmark.gif
  1. <?php
  2. $a = "$()klo*&^";
  3.  
  4. if(preg_match("/^[a-zA-Z0-9_]*$/",$a)) echo "good";
  5.  
  6. ?>

Cytat
W zasadzie to wszystkie znaki nie będące liczbą, cyfrą bądź znakiem podkreślenia.
To chcesz litery, czy "cyfry i liczby"??

A to wyrażenie regularne, jeżeli w stringu znajdą sie inne znaki niż w nawiasch kwadratowych, to nie przepuści, załatwione.
slaug
Zgadza się tylko zapomniałem o dopisaniu początka i końca czyli ^ $. Poza tym gwiazdka za nawiasem też w miarę potrzebna być sie zdaje winksmiley.jpg To co napisałeś oczywiście działa, to co ja wyżej napisałem też, ale Twoje bardziej mi się podoba, dzięki.

Pozwolę sobie jeszcze tylko dodać do tego kropkę o której zapomniałem wam napisać winksmiley.jpg Czyli:

  1. <?php
  2. "/^[a-zA-Z0-9_.]*$/"
  3. ?>


Jeszcze raz dzięki.

pozdrawiam,
Daniel
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.