Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Preg match a znaki interpunkcyjne
Lethys
post
Post #1





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Witam,

Mam takie wyrazenie:

  1. if(!preg_match('/^([a-ż0-9_]+)$/i', $temat)){
  2. print "<br><br><font color=\"#d03b3b\"><b>Użyto niedozwolonych znaków w temacie!</b></font><meta http-equiv=\"Refresh\" content=\"1; url=poczta.php?view=sprawdz\">";
  3. }


Wszystko ok ale chciałbym dodać jeszcze możliwość używania znaków interpunkcyjnych. Jak powinno wyglądać pregmatch z literami, cyframi i znakami interpunkcyjnymi?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




/^([a-ż0-9_\.\,]+)$/i
Go to the top of the page
+Quote Post
Lethys
post
Post #3





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Działa ale kiedy dodaje więcej możliwych znaków typu: ;,:,!,?

czyli wyglada to tak:

  1. if(!preg_match('/^([a-ż0-9_\.\,\:\;\(\)\?]+)$/i', $list)){
  2. print "<br><br><font color=\"#d03b3b\"><b>Użyto niedozwolonych znaków w treści listu.</b></font><meta http-equiv=\"Refresh\" content=\"1; url=poczta.php?view=sprawdz\">";
  3. }


wtedy jak użyje dozwolonego znaku np. ? wywala mi że nie można go używać mimo że zezwoliłem...

Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




\ stosuje się przed znakami specjalnymi (IMG:style_emoticons/default/smile.gif)
Warto by zapoznać się z podstawą wyrażen regularnych i poznać które znaki są specjalne
Go to the top of the page
+Quote Post
Lethys
post
Post #5





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


No faktycznie,

Ale nigdzie nie mogę znaleźć jak uzwględnić (,),:,;

wyczytałem że (,) to również znaki specjalne a mimo wszystko nie chce działać z \

Jak zapisać preg match aby uzwględniało również te znaki ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




srednik nie jest znakiem specjalnym. Po prostu przed nim wywal te \
ps: dwukropek chyba tez nie jest - nie chce mi sie sprawdzac
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
Lethys
post
Post #7





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Szukam, szukam, czytam i nadal nie jestem w stanie tego zrobić (IMG:style_emoticons/default/sad.gif)

Robię w ten sposób:

  1. if(!preg_match('/^([a-ż0-9():;_\.\,\?]+)$/i', $list)){
  2. print "<br><br><font color=\"#d03b3b\"><b>Użyto niedozwolonych znaków w treści listu.</b></font><meta http-equiv=\"Refresh\" content=\"1; url=poczta.php?view=sprawdz\">";
  3. }


próbowałem też w ten:

  1. if(!preg_match('/^([a-ż0-9_\.\,\?():;]+)$/i', $list)){
  2. print "<br><br><font color=\"#d03b3b\"><b>Użyto niedozwolonych znaków w treści listu.</b></font><meta http-equiv=\"Refresh\" content=\"1; url=poczta.php?view=sprawdz\">";
  3. }


I nadal nie działa jak moge zapisać preg match aby mi wykrywało litery, cyfry, , . ? () ; : tylko tyle chcę.
Go to the top of the page
+Quote Post
Piogola
post
Post #8





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

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


Przecinek nie jest znakiem specjalny, a nawiasy są.
Go to the top of the page
+Quote Post
Lethys
post
Post #9





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Czyli nawiasy robie z /(/)

Ale co zrobić z ;: ?

  1. if(!preg_match('/^([a-ż0-9_;:\.\,\?\(\)]+)$/i', $list)){
  2. print "<br><br><font color=\"#d03b3b\"><b>Użyto niedozwolonych znaków w treści listu.</b></font><meta http-equiv=\"Refresh\" content=\"1; url=poczta.php?view=sprawdz\">";
  3. }


W ten sposob nie dziala
Go to the top of the page
+Quote Post
Piogola
post
Post #10





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

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


W treści listu nie może być żadnej spacji ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:19