![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 29.05.2006 Skąd: /dev/null Ostrzeżenie: (0%) ![]() ![]() |
Ja mam np. takie wyrażenia regularne w skrypcie walidacyjnym
Kod reg = /^[a-zA-Z0-9±ćęłń󶿼±ĆĘŁŃӶݬ]{1,30} @[a-zA-Z0-9±ćęłń󶿼±ĆĘŁŃӶݬ]+ (\.[a-zA-Z0-9±ćęłń󶿼±ĆĘŁŃӶݬ]+)+$/; wyn = document.forms['formularzRekrutacyjny'].email.value.match(reg); I też przechodzi coś takiego jak Tobie. Ale pamiętajmy restrykcje podczas walidacji restrykcjami, ale nie można przesadzać. Weźmy, że skrypt sprawdza czy po kropce czy występuje trzy członowa nazwa domeny. A jeśli mam .pl to co? Dlatego ostatnio walidatory sprawdzają czy po kropce występuje choć jeden znak. Musimy iść z duchem czasu. nazwy domen się zmieniają,chociażby np.: .info czy jedną z nowszych .travel. One wszystkie muszą przejść walidację. Gorzej jak skrypt podczas nie bierze pod uwagę, że nick też może zawierać kropkę np. podział na imie i nazwisko i takie tam. Dlatego jak sprawdza czy jest et, nazwa serwera i domena to raczej wydaje mi się, że jest dobrze. A domena jak mówię może być dłuższa... Ten post edytował toolmaniak 15.08.2007, 22:30:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 17:27 |