How to validate an email address in JavaScript
Regular expressions are patterns used to match character combinations in strings. They're pretty powerful and are commonly used for anything from validating form fields to searching large text documents. Here's how you could use a JavaScript regular expression to validate an email address:
const emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
const pass = 'fraser@webuilddigital.co.uk';
console.log(emailRegex.test(String(pass).toLowerCase()));
// true
const fail = 'fraser hamilton';
console.log(emailRegex.test(String(fail).toLowerCase()));
// false
If you want to be able to accept unicode you should use this regex instead:
const unicodeRegex = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
const email = 'Dörte@example.com';
console.log(unicodeRegex.test(String(email).toLowerCase()));
// true