Back to Tutorials

Data Validation Techniques Tutorial

Lesson 1 of 2: Validation Fundamentals

Progress50%

Validation Fundamentals

Data validation ensures data integrity and security in applications. It prevents invalid data from entering your system and provides user feedback.

Types of validation:
• Client-side validation (user experience)
• Server-side validation (security)
• Schema validation (structure)
• Business logic validation (rules)

Validation techniques:
• Type checking (string, number, boolean)
• Format validation (email, phone, URL)
• Range validation (min/max values)
• Required field validation
• Custom business rules

Best practices:
• Validate on both client and server
• Provide clear error messages
• Validate early and often
• Use consistent validation patterns
• Handle edge cases gracefully

Example

// Basic validation functions
function validateEmail(email) {
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  return emailRegex.test(email);
}

function validateRequired(value) {
  return value !== null && value !== undefined && value.trim() !== '';
}

function validateLength(value, min, max) {
  const length = value ? value.length : 0;
  return length >= min && length <= max;
}

function validateNumber(value, min, max) {
  const num = parseFloat(value);
  return !isNaN(num) && num >= min && num <= max;
}

// Form validation example
function validateUser(user) {
  const errors = {};
  
  if (!validateRequired(user.name)) {
    errors.name = 'Name is required';
  } else if (!validateLength(user.name, 2, 50)) {
    errors.name = 'Name must be 2-50 characters';
  }
  
  if (!validateRequired(user.email)) {
    errors.email = 'Email is required';
  } else if (!validateEmail(user.email)) {
    errors.email = 'Invalid email format';
  }
  
  if (!validateRequired(user.age)) {
    errors.age = 'Age is required';
  } else if (!validateNumber(user.age, 13, 120)) {
    errors.age = 'Age must be between 13 and 120';
  }
  
  return {
    isValid: Object.keys(errors).length === 0,
    errors
  };
}

// Usage
const user = { name: 'John', email: 'john@example.com', age: '25' };
const validation = validateUser(user);
console.log(validation);

Exercise

Create a validation system for a product form with: 1. Name (required, 2-100 characters) 2. Price (required, positive number) 3. Category (required, from predefined list) 4. Description (optional, max 500 characters) 5. Return validation result with errors

Lesson 1 of 2