Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Preg match a znaki interpunkcyjne
Lethys
post 9.02.2011, 11:51:13
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?


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
nospor
post 9.02.2011, 11:52:57
Post #2





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




/^([a-ż0-9_\.\,]+)$/i


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lethys
post 9.02.2011, 12:29:27
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...



--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
nospor
post 9.02.2011, 12:33:25
Post #4





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




\ stosuje się przed znakami specjalnymi smile.gif
Warto by zapoznać się z podstawą wyrażen regularnych i poznać które znaki są specjalne


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lethys
post 9.02.2011, 13:04:49
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 ?


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
nospor
post 9.02.2011, 13:20:24
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]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lethys
post 9.02.2011, 15:43:57
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ć 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ę.


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
Piogola
post 9.02.2011, 15:50:53
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ą.


--------------------
Google Manual
Go to the top of the page
+Quote Post
Lethys
post 9.02.2011, 16:02:36
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


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
Piogola
post 9.02.2011, 16:06:28
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 ?


--------------------
Google Manual
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.05.2025 - 07:04