Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wyszukiwanie kropek w ciągu regularnym
blackstone
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 19.03.2015

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


Jak za pomocą wyrażen regularnych mogę sprawdzić czy dany tekst zawiera kropkę ? Potrzebuje aby skrypt potraktował kropkę jako znak do sprawdzenia a nie znak strukturalny.
zrobiłem coś takiego :

  1. $k = preg_match("/./",$mail) ;


Ten fragment kodu jest częścią funkcji sprawdzającą mail . SPrawdzanie czy w adresie jest @ idzie bez problemu, ale to drugie z kropką zwraca mi zawsze 1 nawet gdy kropki nie ma
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Do tak prostego wyszukiwania nie potrzebujesz wyrażenia regularnego. Wystarczy zwykłe:

  1. if (strpos($mail, '.') !== false) {
  2. // znalazłem kropkę!
  3. }
Go to the top of the page
+Quote Post
Beniooo
post
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

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


W wyrażeniach regularnych kropka zastępuje dowolny znak
Tak jak już @SmokAnalog stwierdził, to bardzo proste wyszukiwanie, i możesz użyć sposobu podanego przez Niego.
Jeśli jednak bardzo zależy Ci na wyrażeniach regularnych Twój kod powinien wyglądać następująco:
  1. $k = preg_match("/\./",$mail) ;

PHP ma gotową funkcję do sprawdzania poprawności m.in. adresu e-mail http://php.net/manual/en/filter.examples.validation.php
  1. filter_var($email, FILTER_VALIDATE_EMAIL)

Odpowiedzią funkcji jest TRUE lub FALSE
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


No właśnie, jeśli ma Ci to posłużyć za walidację adresu e-mail, to nie idź tą drogą (IMG:style_emoticons/default/smile.gif) Sensowne sprawdzenie adresu e-mail jest zbyt skomplikowane, żeby sobie tym zaprzątać tym głowę. Byli już tacy i spędzili nad tym dużo czasu, czego owocem są gotowe rozwiązania, między innymi sposób podany przez Benia.

Ale tak jako ciekawostka, kropki możesz też wyszukać tak:
  1. preg_match('/[.]/', $mail);


Te nawiasy kwadratowe zawierają zestawy znaków. Zresztą, jeśli interesuje Cię temat wyrażeń regularnych, to bez problemu znajdziesz wiele materiałów do nauki.
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Chociaż filter_var jest ogólnie fajne i dobrze że powstało to jednak w środowisku produkcyjnym raczej bym nie stosował do walidacji maili. Jest zbyt prymitywne. Poszukaj bardziej gotowych klas. A już na pewno nie rób czegoś w stylu kilka preg_match bo nie umiesz ciągu napisać. Uwierz że sprawdzanie maili to jedna z trudniejszych rzeczy i trzeba mieć dużą wiedzę. No i przede wszystkim zapoznać się z bieżącą specyfikacją maili.
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: 24.08.2025 - 14:24