Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pytanie do wyrażenia regularnego, max długość
gauss
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





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:
  1. <?php
  2. if(isset($mail{256})){
  3.   // zuo
  4. }
  5. ?>

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.
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 04:56