簡體   English   中英

具有ng-pattern的多封電子郵件的正則表達式

[英]Regular expression for multiple emails with ng-pattern

我正在嘗試使用ng-pattern過濾掉大多數主要的電子郵件地址。

這是我的正則表達式,誠然我不是很精通。

<input type="email" name="email" ng-model='email.userInput' 
placeholder="Please enter your work email" 
ng-pattern="/^[A-Z0-9._%+-]+@(yahoo\.com|gmail\.com|msn\.com|hotmail\.com|live\.com)/">

我只是想在上面列出的電子郵件中失敗...只是在尋找正確方向的一步。

將無效電子郵件域的交替組更改為負前瞻( (?!...) ):

^[A-Z0-9._%+-]+@(?!yahoo\.com|gmail\.com|msn\.com|hotmail\.com|live\.com)

演示版


詳細地說,環顧四周是零寬度的斷言,這意味着它實際上與任何字符都不匹配。 由於這是一個負面的超前查詢,因此,一旦我們匹配@ ,我們將檢查以確保其后沒有yahoo.com等。由於其工作方式,我們實際上可以簡化很多操作(因為[A-Z0-9._%+-]+可能無法覆蓋范圍廣泛的電子郵件,“ type =“ email”應該為我們驗證了這些電子郵件)。 我個人會使用這樣的東西

@(?!(?:yahoo|gmail|msn|hotmail|live)\.com|$)

只要不帶yahoo / gmail / etc, .com和字符串末尾,它們只會匹配@符號。

暫無
暫無

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

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