Yevhen Klymentiev
dark
light
console
darkness
y.klymentiev@gmail.com
Reusable Snippets|Practical utility code for everyday use — custom-built and ready to share

isValidEmail

Validates whether a string is a valid email address.

TypeScript
Copied!
1/**
2 * Validates whether a string is a valid email address.
3 *
4 * @param email - The email string to validate.
5 * @returns True if the email is valid, false otherwise.
6 */
7export function isValidEmail(email: string): boolean {
8  const emailRegex =
9    /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/;
10  return emailRegex.test(email);
11}
  • Lightweight Validation

    Uses a simple, performant regular expression that covers the vast majority of valid email formats.

  • No Dependencies

    Fully self-contained with no reliance on external libraries or frameworks.

  • Immediate Feedback

    Returns a boolean result instantly, suitable for inline form validation or real-time checks.

  • Resistant to Common Errors

    Prevents common invalid formats like missing domain parts, empty local names, or extra spaces.

Tests | Examples

TypeScript
Copied!
1test('validates correct email addresses', () => {
2  expect(isValidEmail('test@example.com')).toBe(true);
3  expect(isValidEmail('user.name+tag+sorting@example.com')).toBe(true);
4  expect(isValidEmail('user_name@example.co.uk')).toBe(true);
5});
6
7test('invalidates incorrect email addresses', () => {
8  expect(isValidEmail('testexample.com')).toBe(false); // missing @
9  expect(isValidEmail('test@.com')).toBe(false);        // domain missing
10  expect(isValidEmail('test@com')).toBe(false);         // dot missing
11  expect(isValidEmail('test@com.')).toBe(false);        // domain ends in dot
12  expect(isValidEmail('@example.com')).toBe(false);     // missing local part
13});
14
15test('invalidates empty and whitespace-only strings', () => {
16  expect(isValidEmail('')).toBe(false);
17  expect(isValidEmail('   ')).toBe(false);
18});

Common Use Cases

  • Form Input Validation

    Check whether user-provided emails in signup or contact forms meet syntactic criteria.

  • Client-Side Sanitization

    Validate before submitting data to the backend to reduce unnecessary server load.

  • Conditional UI Feedback

    Enable or disable submission buttons or display messages based on email validity.

  • Email-Based Feature Gates

    Ensure valid emails are entered before triggering features like password reset, verification, or newsletter subscription.

Codebase: Utilities -> Validation -> isValidEmail | Yevhen Klymentiev