使用正则表达式的电子邮件地址验证

使用正则表达式的电子邮件地址验证

问题描述:

我有一个需要电子邮件地址的注册表单。 我需要允许仅属于域名(“NAME”@ Mobily.com.sa)的电子邮件地址,这是为“MOBILY” 工作的员工而设的。我们还需要禁止(“NAME”.c @ mobily.com.sa)那些以(.c)结尾的电子邮件属于为“Mobily”工作的承包商。使用正则表达式的电子邮件地址验证

这个想法是允许员工和不允许承包商注册。

请建议正确的REGEX来实现这一点。

可以使用负前瞻防止.C发生在@之前。

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

看到这里的行动正则表达式: https://regex101.com/r/i0Rg34/2

+0

许多许多感谢老板:)非常简单,像我一样对魔术工作:) – Jordan

+0

肯定的事情人:)如果这个答案已经为你工作。请务必选择此为胜出的答案并点赞。谢谢 –

+0

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

请使用此:

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

+0

与[email protected]匹配的邮件或[email protected] – radicarl

+0

的模式应该总是在“mobily.com结束.SA”。在你的情况下,“mobily.com.sa”后面可以有任何字符,它仍然会返回true。 – Nitesh

使用此:

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

以下的正则表达式可以有一切,除了名字以.c结尾的名称

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

看到这里 https://regex101.com/r/6vgQbj/2

+0

非常感谢:)它对我来说工作得很好。 – Jordan