![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 11.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cześć. Mam proste wyrażenie regularne sprawdzające poprawność maila:
/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/ Chciałbym się dowiedzieć czy można do niego dodać warunek, który sprawdzi długość całego maila np. żeby max mógł wynosić 255 znaków? Jeżeli tak to jak to zrobić? Wiem, że mogę sobie osobno wywołać funkcję strlen(), ale chciałbym to zawrzeć w wyrażeniu regularnym i w ogóle ciekawi mnie to czy można. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Kod {2,4} Dowiedz się, co oznaczają te nawiasy. [; |
|
|
![]()
Post
#3
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat Dowiedz się, co oznaczają te nawiasy. [; Wiesz, jestem ciekaw, jakbyś to rozwiązał z całym wyrażeniem, bo ja zrobiłem próbę z tym zakresem i nie zadziałało: /(^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$){,255}/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 11.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wiem co oznaczają.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Jak ten mail jest zapisywany do bazy to ogranicz tam liczbe znakow do 255. Warunek ograniczysz do sprawdzenia czy zapytanie zostalo wyslane.
if(!zapytanie) { echo 'OMG!!!!'; } |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Blah, zagalopowałem się... (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Kod /(^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$){,255}/ Trzeba by było wpisać 255 maili obok siebie... Cytat Wiem, że mogę sobie osobno wywołać funkcję strlen(), ale chciałbym to zawrzeć w wyrażeniu regularnym i w ogóle ciekawi mnie to czy można. Nie bardzo, napisałem wyżej; sprawdzanie długości zeżre zasoby, ale jest inny sposób:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 11.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
No spoko. Jak sie nie da w wyrażeniu regularnym to trudno. Tylko z polem e-mail miałem problem. W innych polach (kod pocztowy itp) łatwo wszystko sprawdziłem jednym wyrażeniem regularnym bez innych funkcji - w tym długość, poprawność, niedozwolone znaki też. Czy nie powinno się tak robić? Dużo zasobów traci się na sprawdzaniu długości za pomocą wyrażeń (zakładając że ktoś specjalnie wyśle bardzo długi ciąg znaków)? Czy może to nie jest bardzo istotne?
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat w tym długość, poprawność, niedozwolone znaki też. No tak, bo w tamtych polach masz tak jakby "bloki" stałej długości (np. kod pocztowy 2 znaki, 3 znaki) Cytat Dużo zasobów traci się na sprawdzaniu długości za pomocą wyrażeń (zakładając że ktoś specjalnie wyśle bardzo długi ciąg znaków)? To tak, jak podałem; jeśli ma być konkretna długość, to sprawdzasz:
AFAIK, to najszybszy sposób sprawdzenia, czy ciąg jest dłuższy niż ustalony. A z wyrażeń powinno się korzystać wówczas, gdy nie ma innej możliwości sprawdzenia zawartości ciągu. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Do sprawdzenia poprawności maila chyba lepiej użyć filter_var" title="Zobacz w manualu PHP" target="_manual? Btw: adres mail w teorii może mieć więcej niż 255 znaków. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#10
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat Btw: adres mail w teorii może mieć więcej niż 255 znaków. Uściślając: 64 znaki nazwy uzytkownika (przed małpką) oraz 255 znaków tworzących domenę (po małpce) + małpka = 320 znaków. Żródło: RFC2821 (SMTP, z 2001 roku, które zastąpiło starsze RFC821, gdzie adres mógł mieć odpowiednio 64+64 znaki) Cytat (...)
There are several objects that have required minimum/maximum sizes. Every implementation MUST be able to receive objects of at least these sizes. Objects larger than these sizes SHOULD be avoided when possible. However, some Internet mail constructs such as encoded X.400 addresses [16] will often require larger objects: clients MAY attempt to transmit these, but MUST be prepared for a server to reject them if they cannot be handled by it. To the maximum extent possible, implementation techniques which impose no limits on the length of these objects should be used. local-part The maximum total length of a user name or other local-part is 64 characters. domain The maximum total length of a domain name or number is 255 characters. (...) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 09:44 |