używam tego
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
regexp, aby sprawdzić poprawność wiadomości e-mail
([\w\.\-]+)
- dotyczy to domeny pierwszego poziomu (wiele liter i cyfr, także punkt i łącznik)
([\w\-]+)
- dotyczy to domeny drugiego poziomu
((\.(\w){2,3})+)
- i dotyczy to domen innych poziomów (od 3 do nieskończoności), które zawierają punkt i 2 lub 3 literały
co jest nie tak z tym wyrażeniem regularnym?
EDYCJA: nie pasuje do e-maila „coś@someth.ing”
c#
regex
validation
Siergiej
źródło
źródło
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,})+)$""
Odpowiedzi:
TLD, takie jak .museum, nie są dopasowane w ten sposób, a istnieje kilka innych długich TLD. Ponadto możesz sprawdzić adresy e-mail za pomocą klasy MailAddress, jak Microsoft wyjaśnia tutaj w notatce:
To oszczędza Ci wielu bólów głowy, ponieważ nie musisz pisać (lub próbować zrozumieć cudzego wyrażenia regularnego).
źródło
Myślę, że
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
powinien działać.Musisz to tak napisać
Ostrzegamy, że to się nie powiedzie, jeśli:
Pod
@
symbolem znajduje się subdomena .Używasz TLD o długości większej niż 3, np
.info
źródło
Mam wyrażenie do sprawdzania używanych adresów e-mail.
Ponieważ żadne z powyższych nie było tak krótkie ani tak dokładne jak moje, pomyślałem, że opublikuję to tutaj.
Aby uzyskać więcej informacji, przeczytaj o tym tutaj: C # - Wyrażenie regularne e-mail
Ponadto sprawdza poprawność RFC na podstawie składni wiadomości e-mail, a nie tego, czy wiadomość rzeczywiście istnieje. Jedynym sposobem sprawdzenia, czy wiadomość rzeczywiście istnieje, jest wysłanie wiadomości e-mail i poproszenie użytkownika o sprawdzenie, czy otrzymała wiadomość e-mail, klikając łącze lub wprowadzając token.
Są też domeny typu „wyrzucane”, takie jak Mailinator.com i tak dalej. Nie robi to nic, aby zweryfikować, czy wiadomość e-mail pochodzi z wyrzucanej domeny, czy nie.
źródło
Znalazłem dla niego fajny dokument w MSDN.
Instrukcje: sprawdzanie, czy ciągi są w prawidłowym formacie wiadomości e-mail http://msdn.microsoft.com/en-us/library/01escwtf.aspx (sprawdź, czy ten kod obsługuje także znaki spoza ASCII w nazwach domen internetowych. )
Istnieją 2 implementacje, dla .Net 2.0 / 3.0 i .Net 3.5 i wyższych.
wersja 2.0 / 3.0 to:
Moje testy tej metody dają:
źródło
[me]@whatever.museum
[email protected]
to nie jest prawidłowy adres e-mail?Poniższy kod jest oparty na implementacji adnotacji danych Microsoft na github i myślę, że jest to najbardziej kompletna walidacja wiadomości e-mail:
źródło
To nie spełnia wszystkich wymagań RFC 5321 i 5322, ale działa z następującymi definicjami.
Poniżej znajduje się kod
źródło
!#$%&'*+-/=?^_
. {|} ~ @ example.com` lub toDörte@Sörensen.example.com
Najlepsze wyrażenie sprawdzające poprawność wiadomości e-mail
I to jest użycie: -
źródło
Spróbuj tego dla rozmiaru:
źródło
Wypróbuj to, działa dla mnie:
źródło
Ten regex działa idealnie:
źródło
Ten zapobiega nieprawidłowym e-mailom wymienionym przez innych w komentarzach:
Zapobiega również e-mailom z podwójnymi kropkami:
Spróbuj go przetestować, używając jak największej liczby nieprawidłowych adresów e-mail.
Sprawdź poprawność adresu e-mail za pomocą wyrażenia regularnego w języku C # .
źródło
Dlaczego nie skorzystać z sprawdzania poprawności wiadomości e-mail na podstawie atrybutów EF6?
Jak widać powyżej, sprawdzanie poprawności Regex dla wiadomości e-mail zawsze ma w sobie pewną lukę. Jeśli używasz adnotacji danych EF6, możesz łatwo uzyskać niezawodną i silniejszą weryfikację poczty e-mail dzięki dostępnemu do tego atrybutowi adnotacji danych EmailAddress . Musiałem usunąć sprawdzanie poprawności wyrażenia regularnego, którego użyłem wcześniej do wiadomości e-mail, gdy dostałem błąd wyrażenia regularnego specyficzny dla urządzenia mobilnego w polu wprowadzania wiadomości e-mail. Gdy atrybut adnotacji danych używany do sprawdzania poprawności wiadomości e-mail został rozwiązany.
źródło
źródło
Używam powyższego kodu, aby zweryfikować adres e-mail.
źródło
źródło
źródło
Podjęto wiele prób stworzenia walidatora e-mail, który spełnia prawie wszystkie światowe wymagania dotyczące poczty e-mail.
Metoda rozszerzenia, z którą możesz zadzwonić:
Ciąg wzorca regex, który można uzyskać, wywołując:
Kod (głównie komentarze):
źródło
Aby zweryfikować swój identyfikator e-mail, możesz po prostu utworzyć taką metodę i użyć jej.
Zwróci to wartość Prawda / Fałsz. (Ważny / nieprawidłowy identyfikator e-maila)
źródło
To moje ulubione podejście do tej pory:
Następnie użyj utworzonego rozszerzenia łańcucha, takiego jak:
źródło
Daj mi znać, JEŚLI to nie działa :)
źródło
oto nasz Regex dla tej sprawy:
są trzy części, które są sprawdzane. ostatni jest prawdopodobnie tym, czego potrzebujesz. konkretny termin {2,6} wskazuje minimalną / maksymalną długość TLD na końcu. HTH
źródło
Wypróbuj następujący kod:
źródło
WYSZUKIWANIE STRINGÓW ZA POMOCĄ METODY REGEX W C #
Jak sprawdzić poprawność wiadomości e-mail za pomocą wyrażenia regularnego?
Użyj metody referencyjnej String.Regex ()
źródło
1
2)
źródło
Myślę, że twój znak karetki i znak dolara są częścią problemu. Powinieneś również trochę zmodyfikować wyrażenie regularne, używam następnego @ "[:] + ([\ w .-] +) @ ([\ w -.]) + ((. (\ w) {2,3}) +) "
źródło
Wzór e-maila Regex:
źródło
Korzystałem z Regex.IsMatch ().
Przede wszystkim musisz dodać następną instrukcję:
Następnie metoda wygląda następująco:
Jest to metoda prywatna z powodu mojej logiki, ale możesz umieścić metodę jako statyczną w innej warstwie, takiej jak „Narzędzia” i wywołać ją tam, gdzie potrzebujesz.
źródło
Nie ma idealnego wyrażenia regularnego, ale myślę, że ten jest dość silny, oparty na badaniu RFC5322 . I z interpolacją ciągów C #, myślę, że dość łatwe do naśladowania.
Weryfikowane z
NUnit 2.x
.źródło
Utworzyłem klasę FormValidationUtils, aby sprawdzić poprawność wiadomości e-mail:
źródło
Sprawdzanie poprawności wiadomości e-mail za pomocą wyrażenia regularnego
Źródło: weryfikacja adresu e-mail c #
Sprawdzanie poprawności bez Regex przy użyciu konstruktora klasy MailAddress.MailAddress (String)
źródło
me@localhost
. Proszę spojrzeć na te strony: Lista TLD ; ważne / nieprawidłowe adresy ; regex dla adresu e-mail RFC822