From de0bb9b58daaae179853f81e25609aceb3f3454d Mon Sep 17 00:00:00 2001 From: KushagraKatiyar06 Date: Thu, 2 Oct 2025 20:06:51 -0400 Subject: [PATCH 1/2] email_validator robust email_validator --- Robust Email Validator/Readme.me | 0 Robust Email Validator/main.py | 46 ++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 Robust Email Validator/Readme.me create mode 100644 Robust Email Validator/main.py diff --git a/Robust Email Validator/Readme.me b/Robust Email Validator/Readme.me new file mode 100644 index 0000000..e69de29 diff --git a/Robust Email Validator/main.py b/Robust Email Validator/main.py new file mode 100644 index 0000000..4dcf9a2 --- /dev/null +++ b/Robust Email Validator/main.py @@ -0,0 +1,46 @@ +def validate_email(email: str) -> bool: + email = email.strip().lower() + + if '@' not in email or "." not in email: + print("You must include \"@\" and \".\" in your email!") + return False + + try: + email, domain = email.split('@', 1) + except ValueError: + print("Email must contain exactly one \"@\" symbol") + return False + if not email: + print("You have nothing before the '@'!") + return False + + if "." not in domain: + print("You are mising the '.'!") + return False + + if domain.startswith('.') or domain.endswith('.'): + return False + + split_domain = domain.split(".") + if any(not part for part in split_domain): + return False + + if len(split_domain[-1]) < 2: + return False + + return True + + +test_emails = [ + "john.doe@example.com", + " Jane@domain.org ", + "noatsymbol.com", + "@missinglocal.com", + "missingdot@domain", + "dot..error@domain.com", + "wrongend@domain.", + "short@domain.c" +] + +for email in test_emails: + print(f"{email} -> {validate_email(email)}") \ No newline at end of file From 0e2a84592afe4cbde657583f2a4ef83d9a6892be Mon Sep 17 00:00:00 2001 From: KushagraKatiyar06 Date: Thu, 2 Oct 2025 20:08:40 -0400 Subject: [PATCH 2/2] updates to email validator --- Robust Email Validator/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Robust Email Validator/main.py b/Robust Email Validator/main.py index 4dcf9a2..5843e33 100644 --- a/Robust Email Validator/main.py +++ b/Robust Email Validator/main.py @@ -19,6 +19,7 @@ def validate_email(email: str) -> bool: return False if domain.startswith('.') or domain.endswith('.'): + print("You placed the period at the incorrect location!") return False split_domain = domain.split(".")