[PHP] wyrażenia regularne

0

witam,
planuje ograniczyc znaki ktorych mozna uzyc podczs rejestracji w moim serwisie,
chce pozwolic na wykorzystanie tylko znakow A-Z , 0-9 i _ , - . wiem ze takie sprawdzanie poprawnosci mozna zrobic korzystajac z wyrazen regularnych, ale nie wiem jak to sie robi,

z gory dzieki za pomoc

0
if(preg_match('/^[A-Z0-9_\-,\.]*$/', $nick))
  {
  dobrze
  }
else
  {
  źle
  }

Pisane z pamięci, więc coś się mogłem machnąć, ale generalnie w ten sposób to wygląda.

0
^[\w\-]+$ 

Lepiej z + bo * to znaczy ze nie musi nic wystapic.

0

'/^[A-Z0-9_-,.]*$/'
[???]
troche to skomplikowanie wyglada, ale jakos to chyba rozgryze,
dzieki za szybka odpowiedz

0

początkowe i końcowe / ograniczają wyrażenie regularne
[] oznaczają występowanie dowolnego znaku z zakresu w nawiasach
A-Z i 0-9 chyba jasne, _ - podkreślenie, - - znak "-" (- jest specjalny, więc trzeba go wyeskejpować), "," to przecinek, "." - sytuacja jak z "-".
^ oznacza początek łańcucha, $ jego koniec.

  • oznacza wystąpienie poprzedzającego znaku (tutaj [...]) dowolną ilość razy, + dowolną większą od 0 ilość razy.

To chyba wszystko.

0
Adam.Pilorz napisał(a)
preg_match('/^[A-Z0-9_\-,\.]*$/', $nick)

Jak juz pisac to optymalnie i czytelnie :)
[A-Z0-9_-.] ==[A-Z0-9_.-]

0

\w - to to samo co a-zA-Z0-9_

0

dzieki wszystkim za pomoc

0
maniek_2 napisał(a)

\w - to to samo co a-zA-Z0-9_
Nikt nie twierdzi inaczej, ale:

  1. autor chcial tylko A-Z - nic nie pisal o a-z (byc moze zapomnial albo uznal to za oczywiste)
  2. \w dziala dla preg ale gdyby chcial uzyc kiedys wersji ereg to sie zdziwi, bo tam \w nie teges :)

chyba wsio juz jasne

0
Marooned napisał(a)
maniek_2 napisał(a)

\w - to to samo co a-zA-Z0-9_
Nikt nie twierdzi inaczej, ale:

  1. autor chcial tylko A-Z - nic nie pisal o a-z (byc moze zapomnial albo uznal to za oczywiste)
  2. \w dziala dla preg ale gdyby chcial uzyc kiedys wersji ereg to sie zdziwi, bo tam \w nie teges :)

chyba wsio juz jasne

Czepiasz sie. Pregami jest lepiej to primo a secondo autor nie zna wyrazen regularnych wiec nie zna tych konstrukcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1