[PHP] wyrażenia regularne

Odpowiedz Nowy wątek
2006-07-26 20:03
raastaa
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

Pozostało 580 znaków

2006-07-26 20:45
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.


Grunt to uziemienie...

Pozostało 580 znaków

2006-07-26 20:50
maniek_2
0
^[\w\-]+$ 

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

Pozostało 580 znaków

2006-07-26 20:52
raastaa
0

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

Pozostało 580 znaków

2006-07-26 20:56
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.


Grunt to uziemienie...

Pozostało 580 znaków

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

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


Pozostało 580 znaków

2006-07-27 12:49
maniek_2
0

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

Pozostało 580 znaków

2006-07-27 20:27
raastaa
0

dzieki wszystkim za pomoc

Pozostało 580 znaków

2006-07-28 04:51
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


Pozostało 580 znaków

2006-07-28 09:19
maniek_2
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.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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