Regex for Email Address
Validates email addresses following the standard format: local-part@domain.tld.
Pattern
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/i Live Tester
Enter a string to test
Examples
✓ user@example.com
✓ john.doe+tag@company.co.uk
✓ info@test.org
✗ @example.com
✗ user@
✗ user@.com
Pattern Breakdown
^[a-zA-Z0-9._%+-]+ — starts with one or more alphanumeric characters or ._%+-
@ — literal @ symbol
[a-zA-Z0-9.-]+ — domain name with alphanumeric characters, dots, or hyphens
\.[a-zA-Z]{2,}$ — dot followed by a TLD of at least 2 letters
Code Snippets
Javascript
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/i;
regex.test("user@example.com"); // true Python
import re
pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
bool(re.match(pattern, "user@example.com", re.IGNORECASE)) # True Php
$pattern = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/i';
preg_match($pattern, "user@example.com"); // 1 Related Patterns
URL /^https?:\/\/(www\.)?[a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([a-zA-Z0-9()@:%_+.~#?&/=-]*)$/ Phone Number (International) /^\+?[1-9]\d{1,14}$/ Phone Number (US) /^\(?[2-9]\d{2}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/ Phone Number (EU) /^\+?[1-9][0-9]{0,3}[\s.-]?\(?[0-9]{1,5}\)?[\s.-]?[0-9]{1,5}[\s.-]?[0-9]{1,5}$/ IPv4 Address /^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/ IPv6 Address /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/