How to Validate Email Addresses from Inputs in React.js

Published Feb 18, 2022  ∙  Updated May 2, 2022

How can we validate email addresses from inputs in React.js?

We’ll be using the validator module.

1. Install validator

Let’s install validator using npm.

npm install validator

2. Create utility function to validate email

Let’s create a simple utility function to validate the email address.

import validator from 'validator';
const validateEmail = email => {
  return validator.isEmail(email) && email.length > 0;
}

3. Validate when email changes

Finally, we’ll call our validateEmail() function when the email string changes.

Depending on where we store the utility function, we may have to import it from another file.

Let’s place this inside a useEffect hook that runs conditionally on email.

export default function SomeComponent() {
  const [email, setEmail] = useState("");
  const [emailValid, setEmailValid] = useState(true);
  
  useEffect(() => {
    setEmailValid(validateEmail(email));
  }, [email])

  return (
    <input
      value={email}
      onChange={e => setEmail(e.target.value)}
    />
  )
}

We can then use the emailValid boolean state to conditionally render an error message to the user.