Newer
Older
express-blog / src / utils / validateEmail.js
const validator = require("validator");

// Email validation function
const validateEmail = (email) => {
  if (!email || typeof email !== 'string') {
    return { valid: false, message: "Email is required" };
  }
  
  // Trim and normalize
  email = email.trim().toLowerCase();
  
  // Length check
  if (email.length > 254) {
    return { valid: false, message: "Email address is too long" };
  }
  
  // Basic validation
  if (!validator.isEmail(email)) {
    return { valid: false, message: "Please enter a valid email address" };
  }
  
  // Additional checks for suspicious patterns
  if (email.includes('..') || email.startsWith('.') || email.endsWith('.')) {
    return { valid: false, message: "Please enter a valid email address" };
  }
  
  return { valid: true, email };
};

module.exports = validateEmail;