[英]Javascript multiple email regexp validation
通常驗證簡單的 email 是:
/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
這將像 test@test.com 一樣驗證test@test.com
但是如何驗證 email 是否是多個?
entry 1: test@test.com, test1@test.com, test2@test.com
entry 2: test@test.com , test1@test.com , test2@test.com
entry 3: test@test.com, test1@test.com , test2@test.com
entry 4: test@test.com
此電子郵件是用戶將輸入的可能條目。 有時還期望他們有 2 封或 3 封或 4 封或更多封電子郵件。
感謝您的回答。
在逗號上拆分電子郵件並驗證條目
var x = getEmails();
var emails = x.split(",");
emails.forEach(function (email) {
validate(email.trim());
});
getEmails()從頁面獲取電子郵件,並驗證對電子郵件運行正則表達式
試試這個
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;
}
接受逗號和分號作為分隔符
這是一個沒有拆分的多個郵件驗證的正則表達式
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);
}
您應該能夠用逗號分割條目,然后針對正則表達式測試各個電子郵件子條目。
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
在測試任何剝離的電子郵件子字符串之前,您可能還希望修剪任何空格。
試試這個jquery驗證:
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.");
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="shubham20.yeole@gmail.com"> <input type='submit' value="check"> </form> </div> <div class="divSection" > <p class="pSection" id='result'></p> </div>
這是用於檢查電子郵件是否包含多個@字符的JavaScript代碼
var count=0;
email = "shubham20.ye@ole@gmail.com";
alert(email);
for(i =0; i<email.length;i++){
if(email.charAt(i) == "@"){
count++;
}}
if(count>1){
alert("not ok")
} else {
alert("ok")
}
替代方法是使用電子郵件的標准模式
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);
Javascript 多個 email ruby 動態數據中的正則表達式驗證
<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';
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.