Saya menggunakan ini
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
regexp untuk memvalidasi email
([\w\.\-]+)
- ini untuk domain tingkat pertama (banyak huruf dan angka, juga titik dan tanda hubung)
([\w\-]+)
- ini untuk domain tingkat kedua
((\.(\w){2,3})+)
- dan ini untuk domain tingkat lain (dari 3 hingga tak terbatas) yang mencakup titik dan 2 atau 3 literal
apa yang salah dengan regex ini?
EDIT: tidak cocok dengan email "[email protected]"
c#
regex
validation
Sergey
sumber
sumber
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,})+)$""
Jawaban:
TLD seperti .museum tidak cocok dengan cara ini, dan ada beberapa TLD panjang lainnya. Anda juga dapat memvalidasi alamat email menggunakan kelas MailAddress seperti yang dijelaskan Microsoft di sini dalam sebuah catatan:
Ini menghemat banyak sakit kepala Anda karena Anda tidak perlu menulis (atau mencoba memahami orang lain) regex.
sumber
Saya pikir
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
harus bekerja.Anda perlu menulis seperti itu
Berhati-hatilah bahwa ini akan gagal jika:
Ada subdomain setelah
@
simbol.Anda menggunakan TLD dengan panjang lebih dari 3, seperti
.info
sumber
Saya memiliki ekspresi untuk memeriksa alamat email yang saya gunakan.
Karena tidak satu pun di atas yang pendek atau seakurat milik saya, saya pikir saya akan mempostingnya di sini.
Untuk info lebih lanjut baca tentang ini di sini: C # - Email Regular Expression
Juga, ini memeriksa validitas RFC berdasarkan sintaks email, bukan untuk apakah email itu benar-benar ada. Satu-satunya cara untuk menguji apakah email itu benar-benar ada adalah mengirim dan mengirim email dan meminta pengguna memverifikasi mereka menerima email dengan mengklik tautan atau memasukkan token.
Lalu ada domain yang dibuang, seperti Mailinator.com, dan semacamnya. Ini tidak melakukan apa pun untuk memverifikasi apakah email berasal dari domain yang dibuang atau tidak.
sumber
Saya menemukan dokumen yang bagus di MSDN untuk itu.
Cara: Pastikan Strings dalam Format Email Valid http://msdn.microsoft.com/en-us/library/01escwtf.aspx (periksa bahwa kode ini juga mendukung penggunaan karakter non-ASCII untuk nama domain Internet. )
Ada 2 implementasi, untuk .Net 2.0 / 3.0 dan untuk .Net 3.5 dan lebih tinggi.
versi 2.0 / 3.0 adalah:
Tes saya atas metode ini memberikan:
sumber
[me]@whatever.museum
[email protected]
itu bukan alamat email yang valid?Kode berikut didasarkan pada implementasi anotasi Data Microsoft di github dan saya pikir itu adalah validasi paling lengkap untuk email:
sumber
Ini tidak memenuhi semua persyaratan RFC 5321 dan 5322, tetapi berfungsi dengan definisi berikut.
Di bawah ini adalah kode
sumber
!#$%&'*+-/=?^_
. {|} ~ @ example.com` atau yang iniDörte@Sörensen.example.com
Regex validasi email terbaik
Dan penggunaannya: -
sumber
Coba ini untuk ukuran:
sumber
Coba ini, ini bekerja untuk saya:
sumber
Regex ini berfungsi dengan baik:
sumber
Yang ini mencegah email tidak valid yang disebutkan oleh orang lain di komentar:
Itu juga mencegah email dengan titik ganda:
Cobalah mengujinya dengan sebanyak mungkin alamat email yang tidak valid.
Lihat memvalidasi alamat email menggunakan ekspresi reguler di C # .
sumber
Mengapa tidak menggunakan validasi email berbasis atribut EF6?
Seperti yang Anda lihat di atas, validasi Regex untuk email selalu memiliki beberapa lubang di dalamnya. Jika Anda menggunakan anotasi data EF6, Anda dapat dengan mudah mencapai validasi email yang andal dan kuat dengan atribut anotasi data EmailAddress yang tersedia untuk itu. Saya harus menghapus validasi regex yang saya gunakan sebelumnya untuk e-mail ketika saya mengalami kegagalan regex spesifik perangkat seluler pada bidang input e-mail. Ketika atribut anotasi data digunakan untuk validasi email, masalah pada ponsel diselesaikan.
sumber
sumber
Saya menggunakan kode di atas untuk memvalidasi alamat email.
sumber
sumber
sumber
Diperlukan banyak upaya untuk membuat validator email yang menangkap hampir semua persyaratan email di seluruh dunia.
Metode ekstensi yang dapat Anda hubungi dengan:
Regex pattern string yang bisa Anda dapatkan dengan menelepon:
Kode (kebanyakan komentar):
sumber
Untuk memvalidasi ID email Anda, Anda cukup membuat metode seperti itu dan menggunakannya.
Ini akan mengembalikan Benar / Salah. (Id Email Valid / Tidak Valid)
sumber
Ini adalah pendekatan favorit saya sejauh ini:
Kemudian gunakan ekstensi string yang dibuat seperti:
sumber
Beri tahu saya JIKA tidak berhasil :)
sumber
di sini adalah Regex kami untuk kasus ini:
ada tiga bagian, yang checcked. yang terakhir mungkin yang Anda butuhkan. istilah spesifik {2,6} menunjukkan Anda panjang min / maks TLD di akhir. HTH
sumber
Coba Kode Berikut:
sumber
STRING SEARCH MENGGUNAKAN METODE REGEX DI C #
Bagaimana cara memvalidasi Email dengan Ekspresi Reguler?
Gunakan Reference String.Regex () Method
sumber
1
2
sumber
Saya pikir tanda karat dan dolar Anda adalah bagian dari masalah. Anda juga harus memodifikasi regex sedikit, saya menggunakan @ berikutnya [": + + ([\ w .-] +) @ ([\ w -.]) + ((. (\ w) {2,3}) +) "
sumber
Pola Email Regex:
sumber
Saya telah menggunakan Regex.IsMatch ().
Pertama-tama Anda perlu menambahkan pernyataan berikut:
Maka metodenya terlihat seperti:
Ini adalah metode pribadi karena logika saya tetapi Anda dapat menempatkan metode ini sebagai statis di Layer lain seperti "Utilities" dan menyebutnya dari mana yang Anda butuhkan.
sumber
Tidak ada ekspresi reguler yang sempurna, tapi yang ini cukup kuat, saya pikir, berdasarkan studi RFC5322 . Dan dengan interpolasi string C #, cukup mudah diikuti, saya pikir, juga.
Diperiksa dengan
NUnit 2.x
.sumber
Saya telah membuat kelas FormValidationUtils untuk memvalidasi email:
sumber
Validasi email menggunakan regex
Sumber: validasi email c #
Validasi Tanpa Regex menggunakan konstruktor kelas MailAddress.MailAddress (String)
sumber
me@localhost
. Silakan, lihat situs-situs ini: Daftar TLD ; alamat yang valid / tidak valid ; regex untuk alamat email RFC822