[英]Regular expression for 5 comma separated email id
我試圖在一個正則表達式中驗證5個逗號分隔的電子郵件ID。 我在下面使用正則表達式
^([\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4},?)+$
這對於一個電子郵件ID有效。
我想知道如何實現相同的目標,對同一目標的任何小投入也將不勝感激。
提前致謝。
首先,修復模式: -
在字符類中的兩個字符之間形成一個范圍。 因此,您的正則表達式的電子郵件部分應為[-\\w+.%]+@[\\w-.]+\\.[A-Za-z]{2,4}
(請注意-
在第一個字符中的位置類,在第二種情況下,可以將其放在速記字符類\\w
和下一個字符之間)。
接下來,要匹配1到5個逗號分隔的電子郵件,您需要匹配第一個,然后匹配0到4個電子郵件。 並在模式周圍添加錨點,以確保模式與整個字符串匹配:
^[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}(?:,[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}){0,4}$
基本上, ^<EMAIL>(?:,<EMAIL>){0,4}$
:
^
-字符串的開頭 <EMAIL>
-您的電子郵件格式 (?:
-一個非捕獲組的開始,它充當一系列模式的容器:
,
-逗號 <EMAIL>
-您的電子郵件格式 ){0,4}
-上述序列中零到四次出現 $
-字符串結尾。 另一個想法是使用拆分,
然后驗證:
var s = "abc@gg.com,abc2@gg.com,abc3@gg.com,abc4@gg.com,abc5@gg.com"; var re = /^[-\\w+.%]+@[\\w-.]+\\.[A-Za-z]{2,4}$/; var items = s.split(","); if (items.length <= 5 && items.filter(function(x) { return re.test(x); }).length === items.length ) { console.log("VALID => ", items); } else { console.log("INVALID!"); }
在Java腳本的正則表達式下,您可以使用多個逗號分隔的電子郵件ID,希望此功能對您有用
/^(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,4}\s*?,?\s*?)+$/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.