12

Normally validation of simple email is:

/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/

This will validate email like [email protected]

But how to validate if email is multiple?

entry 1: [email protected], [email protected], [email protected]
entry 2: [email protected] , [email protected] , [email protected]
entry 3: [email protected], [email protected] , [email protected]
entry 4: [email protected]

This emails is a possible entries that user will input. Also expect thier is 2 or 3 or 4 or more emails sometimes.

Thanks for the answers.

asked Nov 19, 2011 at 3:54

7 Answers 7

20

Split the emails on a comma and validate the entries

var x = getEmails();
var emails = x.split(",");
emails.forEach(function (email) {
 validate(email.trim());
});

Where getEmails() gets the emails from the page, and validate runs your regex against the emails

answered Nov 19, 2011 at 3:59
Sign up to request clarification or add additional context in comments.

Comments

7

try this

 function validateEmails(string) {
 var regex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
 var result = string.replace(/\s/g, "").split(/,|;/); 
 for(var i = 0;i < result.length;i++) {
 if(!regex.test(result[i])) {
 return false;
 }
 } 
 return true;
 }

accept both comma and semicolon as separator

answered Feb 10, 2016 at 12:54

Comments

4

Here is a regex for multiple mail validation without split

function validateMultipleEmails(string) {
 var regex = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-\.]+)+([;]([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-\.]+))*$/;
 return regex.test(string);
}

https://regex101.com/r/TUXLED/1

answered Mar 21, 2018 at 8:40

Comments

1

You should be able to split the entry by commas, and then test the individual email subentries against the regexp.

var valid = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var entries = entry.split(",");
if(valid.test(entries[0]))... //or however your testing against the regex

You might also want to trim any whitespace before testing any of the stripped email substrings.

answered Nov 19, 2011 at 4:09

Comments

0

Try this for jquery validation:

jQuery.validator.addMethod("multiemail", function (value, element) {
 if (this.optional(element)) {
 return true;
 }
 var emails = value.split(','),
 valid = true;
 for (var i = 0, limit = emails.length; i < limit; i++) {
 value = emails[i];
 valid = valid && jQuery.validator.methods.email.call(this, value, element);
 }
 return valid;
}, "Invalid email format: please use a comma to separate multiple email addresses.");
j0k
22.8k28 gold badges81 silver badges90 bronze badges
answered Nov 6, 2012 at 10:06

Comments

0

function validateEmail(emailAddress) {
 var emailPattern = /^(([^<>()[\]\\.,;:\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,}))$/;
 return emailPattern.test(emailAddress);
}
function validate() {
 $("#result").text("");
 var email = $("#emailAddress").val();
 if (validateEmail(email)) {
 $("#result").text(email + " validation successful");
 $("#result").css("color", "white");
 } else {
 $("#result").text(email + " validation failed");
 $("#result").css("color", "red");
 }
 return false;
}
$("form").bind("submit", validate);
.divSection{
 text-align: center; padding: 8%;
 }
.pSection{
 border: none; color: white; padding: 10px 100px; text-align: center; text-decoration: none; display: inline-block; font-size: 24px; margin: 3% 0%; border-radius: 6px; -webkit-transition-duration: 0.4s; transition-duration: 0.4s; font-family: Roboto-Regular,Helvetica,Arial,sans-serif; background-color: #4184f3; margin: auto;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="divSection">
<form action="dashboard/user/profile" method="POST">
 <input id="emailAddress" placeholder="Enter Email" value="[email protected]">
 <input type='submit' value="check">
</form>
 </div>
<div class="divSection" >
<p class="pSection" id='result'></p>
</div>

This is javascript code to check if email contains more than one @ characters

var count=0;
email = "shubham20.ye@[email protected]";
alert(email);
for(i =0; i<email.length;i++){
if(email.charAt(i) == "@"){
count++;
}}
if(count>1){
 alert("not ok")
} else {
 alert("ok")
}

Alternate way is by using the standard pattern of the email

var pattern= /^(([^<>()\[\]\\.,;:\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,}))$/;
re.test(email);
answered Sep 20, 2016 at 23:01

Comments

0

Javascript multiple email regexp validation in ruby dynamic data

 <span id="error_message_<%= item.id %>" class="p-3 mb-2 text-danger text-center">Multiple emails must be separated by comma.</span>
 <%= text_field_tag :email, nil, style: 'width: 60%;', required: true, id: "emails_#{item.id}", placeholder: "Multiple emails must be separated by comma." %>
 $(document).ready(function() {
 document.getElementById("cc_submit_<%= item.id %>").disabled = true;
 document.getElementById('error_message_<%= item.id %>').style.display='none';
 });
 $('#emails_<%= item.id %>').keyup( function() {
 var emails = $('#emails_<%= item.id %>').val();
 var emails = emails.split(",");
 var valid = true;
 var regex = /^(([^<>()[\]\\.,;:\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,}))$/;
 var invalidEmails = [];
 for (var i = 0; i < emails.length; i++) {
 emails[i] = emails[i].trim();
 if( emails[i] == "" || ! regex.test(emails[i])){
 invalidEmails.push(emails[i]);
 }
 }
 if(invalidEmails != 0) {
 document.getElementById("cc_submit_<%= item.id %>").disabled = true;
 document.getElementById("error_message_<%= item.id %>").style.display='block';
 }
 else{
 document.getElementById("cc_submit_<%= item.id %>").disabled = false;
 document.getElementById('error_message_<%= item.id %>').style.display='none';
 }
 })
Mad Physicist
116k29 gold badges202 silver badges292 bronze badges
answered Mar 28, 2022 at 11:09

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.