snippetTippending
Regex patterns for common validation tasks
Viewed 0 times
regexvalidationemailURLUUIDpattern
Problem
Writing regex for common validation tasks from scratch is error-prone. Need reliable, tested patterns.
Solution
Battle-tested regex patterns (use with appropriate flags):
# Email (simplified, RFC-compliant enough for most uses):
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
# URL:
https?://[^\s/$.?#].[^\s]*
# IPv4:
^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$
# ISO date (YYYY-MM-DD):
^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$
# UUID v4:
^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
# Phone (international, flexible):
^\+?[1-9]\d{1,14}$
# Hex color:
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$
# Slug (URL-safe string):
^[a-z0-9]+(?:-[a-z0-9]+)*$
# Semantic version:
^(0|[1-9]\d)\.(0|[1-9]\d)\.(0|[1-9]\d)(?:-((?:0|[1-9]\d|\d[a-zA-Z-][0-9a-zA-Z-])(?:\.(?:0|[1-9]\d|\d[a-zA-Z-][0-9a-zA-Z-]))))?$
IMPORTANT: For emails and URLs, prefer library validation over regex.
Regex is fine for quick checks, but edge cases are numerous.
# Email (simplified, RFC-compliant enough for most uses):
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
# URL:
https?://[^\s/$.?#].[^\s]*
# IPv4:
^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$
# ISO date (YYYY-MM-DD):
^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$
# UUID v4:
^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
# Phone (international, flexible):
^\+?[1-9]\d{1,14}$
# Hex color:
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$
# Slug (URL-safe string):
^[a-z0-9]+(?:-[a-z0-9]+)*$
# Semantic version:
^(0|[1-9]\d)\.(0|[1-9]\d)\.(0|[1-9]\d)(?:-((?:0|[1-9]\d|\d[a-zA-Z-][0-9a-zA-Z-])(?:\.(?:0|[1-9]\d|\d[a-zA-Z-][0-9a-zA-Z-]))))?$
IMPORTANT: For emails and URLs, prefer library validation over regex.
Regex is fine for quick checks, but edge cases are numerous.
Why
These patterns handle 99% of real-world inputs. For critical validation, always use a dedicated validation library.
Revisions (0)
No revisions yet.