Wpis z mikrobloga

Napisałem regex ktory ma sprawdzić poprawnośc adresu email (jeog budowy), ALE nie działa, bo brak ostatniej kropki go nie obchodzi, a powinien, ktoś wie o co chodzi i dlaczego?
if (!(/[\w[.\]\]+@\w+.\w+/.test(inputValue)))
#js #webdev #regex #webmastering
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@pyroxar: Spróbuj sobie wkleić tutaj ten regex. Wyglada na to, że traktuje otwarcie nawiasu kwadratowego jako znak. Miało tak być?
Jeżeli potrzebujesz regexa do emaili na szybko, to lepiej w necie czegoś gotowego poszukać, a i tak wszystkich możliwych kombinacji adresów nie obejmie.
  • Odpowiedz
@pyroxar: cokolwiek napiszesz nie zapomnij pokryć tego testami, bo czasem odechciewa się rejestracji w serwisie, który marudzi, że adres PaaD+cokolwiek@example.com albo PaaD@example.global (czy inne "nowe" domeny TLD, btw wprowadzone 8 lat temu) są "nieprawidłowe; podaj prawidłowy adres email" ¯\_(ツ)_/¯
  • Odpowiedz
  • 0
@pyroxar kropka . Znaczy "dowolny znak", escape'owana kropka \. znaczy kropka.

Poza tym Twoje wyrażenie i tak jest złe w całości, gdzieś się tam totalnie pogubiłeś. To wynika choćby z faktu niedomkniecia jednego nawiasu.

Kolejna rzecz że nawet jak poprawisz to i tak będzie źle bo standard adresów email jest bardzo skomplikowany, teoretycznie:
adam.nowak+xyz@localhost jest prawnym adresem
  • Odpowiedz
  • 1
@pyroxar po wysłaniu komentarza chyba zrozumiałem że Twoje wyrazenie może jednak mieć poprawą składnie tylko wykop masakruje backslashe przy zapisie komentarza xD i Tobie pewnie też zmasakrował.

Niemniej wszystko co napisałem powyżej nadal w sumie aktualne.
  • Odpowiedz