Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenie regularne, Walidacja adresu email
batman
post
Post #1





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Mam problem z wyrażeniem regularnym, sprawdzającym poprawność wprowadzonego adresu e-mail.
Kod
var re = new RegExp("^([0-9a-zA-Z_\.]+)@([0-9a-zA-Z_\.]+)\.([0-9a-zA-Z]){2,3}$");
alert(re.test(val));

gdzie val jest wartością przekazaną do funkcji jako argument.

Jeśli podam niepoprawny adres wszystko działa jak należy, jednak jeśli podam test@test.aaaaa, wówczas wyświetlona wartość to true, mimo, że po kropce występuje więcej znaków niż w regule. Gdzie jest błąd?

P.S.
Szukałem na googlach. Kilka sprawdzanych skryptów również się myli.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




@toolmaniak
Nawet się nad tym nie zastanawiałem. Dzięki za zwrócenie uwagi na to zagadnienie. Zmienię regułkę nieco i pozwolę na dłuższe nazwy. Poza tym znalazłem jeszcze jeden błąd w wyrażeniu.

@envp
To co napisałem ma być wstępnym sprawdzeniem poprawności podanego adresu e-mail. Jest to napisane po to, by użytkownikowi strona się nie przeładowała bez potrzeby.

Niemniej jednak nadal nie wiem gdzie popełniłem błąd w wyrażeniu.
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: 5.10.2025 - 05:12