harwind

harwind

JavaScript Challenge: Validating Email Addresses

I’m working on a web application where users can sign up with their email addresses. To ensure data integrity, I want to implement client-side validation to check if the email address provided by the user is in a valid format.

Here’s a simplified version of my JavaScript code:

function validateEmail(email) {
    // Regular expression to validate email format
    var regex = /* Regular expression goes here */;
    
    if (regex.test(email)) {
        return true;
    } else {
        return false;
    }
}

var userEmail = "user@example.com";
var isValid = validateEmail(userEmail);

if (isValid) {
    console.log("Email is valid.");
} else {
    console.log("Email is not valid.");
}

In this code, I have a validateEmail function that should return true if the email parameter matches a valid email format and false otherwise. However, I’m not sure what regular expression to use to validate email addresses correctly.

Could you provide a JavaScript code example that includes a regular expression for validating email addresses? Additionally, it would be helpful if you could explain how the regular expression works and any considerations for email validation in JavaScript. Thank you for your assistance!

/js

Most Liked

Bleep9279

Bleep9279

Not sure if this is applicable to your scenario, but if you’re validating user input, you can use type="email" and make this the browser’s problem.

mindriot

mindriot

According to the docs, browsers use an algorithm equivalent to this regex for email input types:

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;

So that could be a reasonably good baseline generally especially if you want to use those inputs at some point. However this does only check that the email address is of a valid format rather than necessarily meaning it is actually a valid email address, for that you likely need to go down the route of sending a validation link to the email address. It is also worth keeping in mind that if you are only doing this check in the client side then it will still be possible for someone to send messed up data directly to the server.

gulshan212

gulshan212

Can you try below code, I am sure you can get what you are looking for.

function validateEmail(email) {
    // Regular expression to validate email format
    var regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

    if (regex.test(email)) {
        return true;
    } else {
        return false;
    }
}

var userEmail = "user@example.com";
var isValid = validateEmail(userEmail);

if (isValid) {
    console.log("Email is valid.");
} else {
    console.log("Email is not valid.");
}

Thanks

Where Next?

Popular General Dev topics Top

Kurisu
You can go directly to the last paragraph of this post to read about my concern. I was trying Git submodules then found the above po...
New
finner
Hello devtalk ! Heroku are closing their free tier (dynos) later this month and I was wondering if you guys could recommend any alternat...
New
harwind
I have an array of objects in JavaScript, and I want to sort them based on a specific property of the objects. For example, I have an arr...
/js
New
thetoaderseventytwo
I’ve been trying to dip my feet into using Unity and C# for the sake of developing games, however, I have barely any knowledge of how to ...
New
jaeyson
Is Rust still good to learn? Last time (ages ago) I heard there was changes made by the foundation. If not, is Go suitable for api and w...
New
harwind
Given an array of integers, find the length of the longest increasing subsequence. A subsequence is a sequence that can be derived from a...
New
harwind
Hi, I’m now investigating the complexities of Python loops, specifically the contrast between for and while loops. However, I’ve had some...
New
Tazmeen
Hello, I am new to this forum. Not really sure if this topic is relevant for this chat at all. I apologize if its not. I am trying to c...
New
dPhong31415
Hey everyone :waving_hand: I’ve just recently discovered Elixir, and honestly—it’s been mind-blowing so far (coming from a React backgro...
New
KnowledgeIsPower
Trivy was attacked for twice recently. CheckMarx and Telnyx was attacked too. Looks like the attack is not slowing down.
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1063 23582 394
New
DevotionGeo
I know that these benchmarks might not be the exact picture of real-world scenario, but still I expect a Rust web framework performing a ...
New
Exadra37
Please tell us what is your preferred monitor setup for programming(not gaming) and why you have chosen it. Does your monitor have eye p...
New
AstonJ
poll poll Be sure to check out @Dusty’s article posted here: An Introduction to Alternative Keyboard Layouts It’s one of the best write-...
New
AstonJ
There’s a whole world of custom keycaps out there that I didn’t know existed! Check out all of our Keycaps threads here: https://forum....
New
AstonJ
Just done a fresh install of macOS Big Sur and on installing Erlang I am getting: asdf install erlang 23.1.2 Configure failed. checking ...
New
PragmaticBookshelf
Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single...
New
AstonJ
Curious what kind of results others are getting, I think actually prefer the 7B model to the 32B model, not only is it faster but the qua...
New
NewsBot
Node.js v22.14.0 has been released. Link: Release 2025-02-11, Version 22.14.0 'Jod' (LTS), @aduh95 · nodejs/node · GitHub
New
PragmaticBookshelf
Use advanced functional programming principles, practical Domain-Driven Design techniques, and production-ready Elixir code to build scal...
New