2011-11-19 59 views
7

Thông thường xác nhận email đơn giản là:Javascript nhiều regexp email xác nhận

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

này sẽ xác nhận email như [email protected]

Nhưng làm thế nào để xác nhận nếu email là nhiều?

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] 

Email này là mục nhập mà người dùng có thể nhập. Ngoài ra, mong đợi đôi khi là 2 hoặc 3 hoặc 4 hoặc nhiều email hơn.

Cảm ơn câu trả lời.

Trả lời

11

Chia email trên một dấu phẩy và xác nhận các mục

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

đâu getEmails() nhận được email từ trang web, và Validate chạy regex của bạn chống lại các email

1

Bạn sẽ có thể chia mục nhập bằng dấu phẩy, và sau đó kiểm tra các subentries email riêng lẻ đối với 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 

Bạn cũng có thể muốn cắt bất kỳ khoảng trống nào trước khi thử nghiệm bất kỳ dữ liệu email bị tước nào.

0

Hãy thử điều này để xác nhận 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."); 
4

thử này

function validateEmails(string) { 
     var regex = /^([\w-\.][email protected]([\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; 
    } 

chấp nhận cả dấu phẩy và dấu chấm phẩy như tách

0

function validateEmail(emailAddress) { 
 
    var emailPattern = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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>

Đây là mã javascript để kiểm tra xem email chứa nhiều hơn một ký tự @

var count=0; 
email = "[email protected]@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") 
} 

cách thay thế được bằng cách sử dụng mô hình chuẩn của email

var pattern= /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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); 
Các vấn đề liên quan