簡體   English   中英

多個電子郵件地址的正則表達式

[英]Regular expression for multiple email addresses

我正在努力驗證一串電子郵件地址。 如果只有一個電子郵件地址,此模式可以正常工作:

var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;

但是,如果我有兩個用空格或換行符分隔的電子郵件地址,則該地址無效。 例如:

xyz@abc.com xyz@bbc.com

要么

xyz@abc.com 
xyz@bbc.com

你能告訴我怎么做嗎? 我是新來的正則表達式。

幫助非常感謝! 謝謝。

試試這個RegEx

/^\s*(?:\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}\b\s*)+$/

正則表達式圖像

在上圖中, Group 1所有內容都已經存在。 我添加了一個單詞結尾和空格。

它將匹配"xyz@abc.com"" xyz@bbc.com ""xyz@abc.com xyz@bbc.com"以及多行中的電子郵件地址。

更新

我從http://www.regular-expressions.info/email.html獲得了RegEx for Email,並已在表達式中使用了它。 您可以在下面找到它:

/^\s*(?:([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})\b\s*)+$/i

正則表達式圖像

^$錨點更改為單詞邊界\\b

/\b\w+...{2,3}\b/

您還應該注意,電子郵件地址的實際規范非常復雜,並且有許多電子郵件將無法通過此測試-例如,域中具有多個句點的電子郵件。 也許可以滿足您的目的,但請指出。

嘗試這個

function validateEmail(field) {
var regex=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i;
return (regex.test(field)) ? true : false;
}

function validateMultipleEmailsCommaSeparated(value) {
var result = value.split(" ");
for(var i = 0;i < result.length;i++)
if(!validateEmail(result[i])) 
        return false;           
return true;
}

您可能會考慮將整個字符串拆分成實際的電子郵件地址數組,而不是嘗試一次驗證整個內容。 這樣的好處是允許您在驗證消息中指出哪個地址失敗。 應該看起來像這樣:

  var emailRegex = /^[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$/i; // http://www.regular-expressions.info/email.html
  var split = form.emails.value.split(/[\s;,]+/); // split on any combination of whitespace, comma, or semi-colon

  for(i in split)
  {
     email = split[i];
     if(!emailRegex.test(email))
     {
          errMsg += "The to e-mail address ("+email+") is invalid.\n";           
     }
  }

多封電子郵件的最佳正則表達式可以接受所有特殊字符

(-*/+;.,<>}{[]||+_!@#$%^&*())

多個電子郵件的最佳正則表達式

/ ^([A-Z0-9。 %+-] + @ [A-Z0-9 .-] +。[AZ] {2,6})*([,;] [\\ s] *([A -Z0-9。 %+-] + @ [A-Z0-9 .-] +。[AZ] {2,6}))* $ / i

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM