اعتبارسنجی ایمیل از طریق RegEx


فرض کنیم سه ایمیل فرضی به صورت زیر داریم:

BehzadMoradi@example.com
behzad.moradi@domain.com
behzad-moradi-1362@my-site.com

حال می‌خواهیم رِجِکسی بنویسیم که هر سه را پوشش دهد که برای این منظور خواهیم داشت:

var string = "BehzadMoradi@example.com";
var regex = /[a-zA-Z]+@[a-z]+\.com/;
string.match(regex);

حال برای آن که ایمیل دوم هم پوشش داده شود رِجِکس فوق را به صورت زیر آپدیت می‌کنیم:

var string = "behzad.moradi@domain.com";
var regex = /[a-zA-Z.]+@[a-z]+\.com/;
string.match(regex);

همان‌طور که ملاحظه می‌شود، داخل کاراکتر سِت علامت . را هم افزوده‌ایم. در تفسیر الگوی فوق می‌توان گفت که از طریق کاراکتر سِت [.a-zA-Z] گفته‌ایم شناسهٔ ایمیل قبل از علامت @ می‌تواند یکی از حروف کوچک یا بزرگ الفبای انگلیسی به علاوهٔ نقطه باشد و کاراکتر سِتی که پس از علامت @ آمده نیز حاکی از آن است که دامنهٔ ایمیل مذکور می‌تواند یک یا بیش از یک حرف کوچک از الفبای انگلیسی باشد سپس .\ نیز نقطه‌ای که قبل از com آمده را مشخص ساخته است. در ادامه،‌ برای آن که علامت - و اعداد نیز مجاز به انتخاب در بخش شناسه شوند، رِجِکس فوق را به صورت زیر آپدیت کرده‌ایم:

var string = "behzad-moradi-1362@my-site.com";
var regex = /[a-zA-Z0-9.-]+@[a-z-]+\.com/;
string.match(regex);

در واقع، داخل کاراکتر سِتی که قبل از علامت @ آمده طیف 9-0 به همراه علامت - نیز درج شده است و برای دامین نیز علامت - در کاراکتر سِتی که پس از علامت @ آمده افزوده شده است. حال فرض کنیم که پسوند دامنه‌های ایمیل‌های فوق به صورت زیر باشند:

BehzadMoradi@example.com
behzad.moradi@domain.ir
behzad-moradi-1362@my-site.io

در واقع، برای آن که پسوندهای ir و io نیز پوشش داده شوند، می‌باید رِجِکس مذکور را به صورت زیر آپدیت کنیم:

var string = "behzad-moradi-1362@my-site.io";
var regex = /[a-zA-Z0-9.-]+@[a-z-]+\.[a-z]{2,3}/;
string.match(regex);

در تفسیر رِجِکس فوق می‌توان گفت که برای پوشش دادن پسوندهایی همچون ir و io علاوه بر com، پس از علائم .\ کاراکتر سِت [a-z] را نوشته سپس با درج {2,3} گفته‌ایم که طول پسوند هم می‌تواند دو و هم سه کاراکتر باشد.


لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان