Wpis z mikrobloga

@henk: no nie jest. W emailu masz komentarze czy escaping, przykładowo "\""@[::1] jest poprawnym adresem email. Sam z resztą planuję postawić sobie serwer email tylko po to by mieć adres w postaci $@hauleth.dev (to też poprawny adres).

Najskuteczniejszym sposobem na walidację jest regex podobny do tego co dał @eyaf (chociaż ja używam [^@]@[^@] bo filtruje trochę lepiej, a też działa w 100% poprawnych adresów) a następnie wysłanie na ten
  • Odpowiedz
@eyaf: Czemu tak powinno być złapane niby? Chcesz walidować czy wykryć e-mail w tekście? Bo ja cały czas mowię o walidacji.

A wystarczy 1 @ by e-mail był poprawny.
  • Odpowiedz
@Hauleth: ok mistrzu w jaki sposób twój sposób waliduje niby ten mail? każde trafienie to walidacja? Jak tak to po prostu daj string.contains('@') zamiast #!$%@?ć regex bo do tego by się tamta walidacja sprowadzała
  • Odpowiedz
@eyaf: No technicznie możesz zrobić string.contains('@') i to będzie walidacja ok.

Widać nie ogarniasz, walidator to prosta funkcja, która przyjmuje wejście i wypluwa true lub false w zależności od tego, czy dane wejście chcemy przepuścić dalej. Więc wystarczy jedno trafienie, by uznać, że email jest w pewnym stopniu prawidłowy i tyle. [^@]@[^@] vs string.contains('@') jest o tyle "lepszy", że jeśli ktoś przez przypadek użył @@ zamiast @ to mu nie
  • Odpowiedz
@Hauleth: ok dzięki za info że email nie jest językiem regularnym, może jeszcze coś powiedz o hierarchii Chomsky'ego bo clearly #!$%@? mam pojęcie xD. Nie zauważyłem że faktycznie chcesz dowolny match, ja chcę całościowy match, mamy inny sposób walidacji, całe to #!$%@? to typowy programmersplaining XD
  • Odpowiedz
@eyaf: swoją drogą to wszystkie rfc są na całościowy match więc zmieniasz konwencję i zamiast to napisać czytelniej to mi #!$%@? jakbym był na 1 roku studiów xd
  • Odpowiedz