[英]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.