Kod
var re = new RegExp("^([0-9a-zA-Z_\.]+)@([0-9a-zA-Z_\.]+)\.([0-9a-zA-Z]){2,3}$");
alert(re.test(val));
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.