2017-02-22 146 views
0

我有一個需要電子郵件地址的註冊表單。 我需要允許僅屬於域名(「NAME」@ Mobily.com.sa)的電子郵件地址,這是爲「MOBILY」 工作的員工而設的。我們還需要禁止(「NAME」.c @ mobily.com.sa)那些以(.c)結尾的電子郵件屬於爲「Mobily」工作的承包商。使用正則表達式的電子郵件地址驗證

這個想法是允許員工和不允許承包商註冊。

請建議正確的REGEX來實現這一點。

回答

0

可以使用負前瞻防止.C發生在@之前。

/[\w\.\+-]+?(?!\.c).{2}@mobily\.com\.sa/g 

看到這裏的行動正則表達式: https://regex101.com/r/i0Rg34/2

+0

許多許多感謝老闆:)非常簡單,像我一樣對魔術工作:) – Jordan

+0

肯定的事情人:)如果這個答案已經爲你工作。請務必選擇此爲勝出的答案並點贊。謝謝 –

+0

完成:) :) :) :) – Jordan

-1

請使用此:

[。!?A-ZA-Z0-9#$%&「* +/=^_`{|}〜 - ] + @ mobily.com.sa

+0

與[email protected]匹配的郵件或[email protected] – radicarl

+0

的模式應該總是在「mobily.com結束.SA」。在你的情況下,「mobily.com.sa」後面可以有任何字符,它仍然會返回true。 – Nitesh

1

使用此:

var regEx = /^(\w+)@(mobily\.com\.sa)$/i; 

如果你想支持名爲 「abc.def」,做

var regEx = /^(\w+\.?\w+)@(mobily\.com\.sa)$/i; 

例子:

regEx.test("[email protected]") //true 
regEx2.test("[email protected]") //false 
+0

匹配來自不同域名的郵件,如mobily-com.sa。這個。在域中應該逃脫。如果名稱包含名字和姓氏的分隔符,則不起作用 – radicarl

+0

感謝radicarl。改變了它。 關於分隔符,對於那個OP應該提供他想要支持的所有特殊字符的列表。目前我提供了對「。」的支持。 – Nitesh

1

以下的正則表達式可以有一切,除了名字以.c結尾的名稱

/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+(?!\.c).{2}@mobily\.com\.sa$/i 

看到這裏 https://regex101.com/r/6vgQbj/2

+0

非常感謝:)它對我來說工作得很好。 – Jordan

相關問題