Cara Memvalidasi Alamat Email Dengan Ekspresi Reguler (Regex). Contoh Kode HTML5, PHP, C#, Python, dan Java.
Hampir setiap bahasa pemrograman mendukung ekspresi reguler saat ini. Sementara beberapa pengembang tidak menyukainya, mereka benar-benar merupakan praktik terbaik karena mereka biasanya melakukan fungsi seperti validasi dengan sangat cepat dengan sumber daya server yang lebih sedikit. Alamat email adalah contoh sempurna… di mana mereka dapat dengan mudah diperiksa untuk memastikan mereka diformat dengan benar.
Perlu diingat bahwa validasi tidak verifikasi. Validasi berarti bahwa data yang dikirimkan mengikuti format standar yang dibangun dengan benar. Beberapa hal menarik tentang alamat email yang mungkin terlewatkan saat validasi.
Apa Itu Alamat Email?
Alamat email, seperti yang ditentukan oleh Internet Message Format (RFC 5322), terdiri dari dua bagian utama: bagian lokal dan bagian domain. Bagian lokal datang sebelum @
simbol dan bagian domain muncul setelahnya. Berikut adalah contoh alamat email: example@example.com
, Di mana example
adalah bagian lokal dan example.com
adalah bagian domain.
- Bahan Makanan Lokal – Bagian lokal dari alamat email dapat berisi kombinasi karakter alfanumerik, titik, tanda hubung, tanda tambah, dan garis bawah. Ini biasanya digunakan untuk mengidentifikasi kotak surat atau akun tertentu di server.
- Domain – Bagian domain dari alamat email terdiri dari nama domain dan domain tingkat teratasnya (TLD). Nama domain adalah serangkaian karakter yang mengidentifikasi server yang menghosting akun email. TLD menentukan jenis entitas yang bertanggung jawab atas nama domain, seperti kode negara (mis
.uk
) atau domain tingkat atas generik (mis.com
,.org
).
Meskipun ini adalah struktur dasar dari sebuah alamat email, aturan untuk apa yang merupakan alamat email yang valid itu rumit.
Berapa Lama Sebuah Alamat Email Bisa?
Saya harus melakukan penggalian hari ini untuk menemukannya, tetapi tahukah Anda berapa panjang valid alamat email? Ini sebenarnya dipecah menjadi beberapa bagian… Lokal@Domain.com.
- Lokal dapat terdiri dari 1 hingga 64 karakter.
- Domain dapat terdiri dari 1 hingga 255 karakter.
Artinya – secara teknis – ini bisa menjadi alamat email yang valid:
loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com
Coba pasang itu di kartu nama! Ironisnya, sebagian besar bidang alamat email dibatasi hingga 100 karakter di web… yang secara teknis tidak benar. Beberapa ekspresi reguler lain yang digunakan untuk memvalidasi alamat email juga mencari domain tingkat atas 3 digit, seperti .com; namun, tidak ada batasan untuk panjangnya domain tingkat atas (misalnya. Martech Zone memiliki 4 digit – .zone).
Ekspresi Reguler
RegEx adalah metode sempurna untuk menguji alamat email karena struktur terprogramnya. Ekspresi reguler banyak digunakan dalam bahasa pemrograman dan editor teks dan sering diintegrasikan ke dalam pustaka atau kerangka pemrosesan teks. Mereka didukung oleh banyak bahasa pemrograman, antara lain Python, Java, C#, dan JavaScript.
Standarisasi alamat email jauh lebih kompleks daripada yang Anda sadari. Saat ditulis ke standar, inilah ekspresi reguler yang sebenarnya untuk alamat email, kredit untuk ekspresi reguler:
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
Pola ekspresi reguler ini cocok dengan format dasar alamat email, termasuk karakter alfanumerik, titik, tanda hubung, tanda tambah, dan garis bawah di nama pengguna, diikuti dengan @
simbol, diikuti dengan nama domain. Penting untuk diperhatikan bahwa pola ini hanya akan memeriksa format alamat email dan bukan yang sebenarnya adanya dari alamat email.
HTML5 Termasuk Validasi Struktur Email
Cara termudah untuk memastikan email valid sesuai standar adalah dengan menggunakan kolom input email HTML5:
<input type='email' name='email' placeholder='name@domain.com' />
Namun, ada kalanya aplikasi web Anda masih ingin memvalidasi alamat email baik di browser saat dimasukkan maupun saat dikirimkan ke server Anda.
Regex Untuk Alamat Email yang Tepat di PHP
Hanya sedikit orang yang menyadarinya, tetapi PHP sekarang memiliki standar RFC yang terpasang di dalamnya fungsi validasi filter.
if(filter_var("name@domain.com", FILTER_VALIDATE_EMAIL)) {
// Valid
}
else {
// Not Valid
}
Regex Untuk Alamat Email yang Tepat di C#
Berikut validasi dasar alamat email di C#
using System;
using System.Text.RegularExpressions;
public class EmailValidator
{
public static bool IsValidEmail(string email)
{
string pattern = @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$";
return Regex.IsMatch(email, pattern);
}
}
Penggunaan praktis dari metode ini:
string email = "example@example.com";
if (EmailValidator.IsValidEmail(email))
{
Console.WriteLine(email + " is a valid email address.");
}
else
{
Console.WriteLine(email + " is not a valid email address.");
}
Regex Untuk Alamat Email yang Tepat di Jawa
Berikut validasi dasar alamat email di Java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailValidator {
private static final Pattern VALID_EMAIL_ADDRESS_REGEX =
Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);
public static boolean isValidEmail(String email) {
Matcher matcher = VALID_EMAIL_ADDRESS_REGEX .matcher(email);
return matcher.find();
}
}
Penggunaan praktis dari metode ini:
String email = "example@example.com";
if (EmailValidator.isValidEmail(email)) {
System.out.println(email + " is a valid email address.");
} else {
System.out.println(email + " is not a valid email address.");
}
Regex Untuk Alamat Email yang Tepat dengan Python
Berikut validasi dasar alamat email dengan Python:
import re
def is_valid_email(email):
pattern = re.compile(r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$')
return True if pattern.match(email) else False
Penggunaan praktis dari metode ini:
email = "example@example.com"
if is_valid_email(email):
print(f"{email} is a valid email address.")
else:
print(f"{email} is not a valid email address.")
Regex Untuk Alamat Email yang Tepat dalam JavaScript
Anda tidak perlu memiliki standar yang terlalu rumit untuk memeriksa struktur alamat email. Berikut cara sederhana menggunakan JavaScript.
function validateEmail(email)
{
var re = /\\S+@\\S+/;
return re.test(email);
}
Tentu saja, itu tidak sesuai dengan standar RFC, jadi Anda mungkin ingin memvalidasi setiap bagian data untuk memastikan validitasnya. Ekspresi reguler ini akan sesuai dengan sekitar 99.9% alamat email di luar sana. Ini tidak sepenuhnya standar, tetapi berguna untuk hampir semua proyek.
function validateEmail(email)
{
var re = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/;
return re.test(email);
}
Penghargaan untuk beberapa contoh ini diberikan kepada HTML.form.panduan.