嗨我需要使用自定义域的电子邮件的正则表达式,意味着我想要排除:
@ live,@ hotmail,@ OUTlook,@ aol,@ yahoo,@ rocketmail,@ gmail,@ gmx.com,@ mail.com,@ inbox.com,@ icloud,@ aim,@ yandex,@ zoho
答案 0 :(得分:2)
在电子邮件地址模式中@
之后立即添加以下内容:
(?!(?:live|hotmail|outlook|aol|yahoo|rocketmail|gmail|
gmx\.com|mail\.com|inbox\.com|icloud|aim|yandex|zoho)$)
请务必使用不区分大小写的匹配。
(为了便于阅读,添加了换行符。)
答案 1 :(得分:2)
在单个循环中对候选字符串使用两个正则表达式测试。
在第一个测试中,您检查不需要的域并在匹配时跳过字符串:
/^[\w-\._\+%]+@(live|hotmail|outlook|aol|yahoo|rocketmail|gmail|gmx\.com|mail.com|inbox.com|icloud|aim|yandex|zoho)\./
在第二个测试中,您使用的是标准电子邮件正则表达式。
答案 2 :(得分:0)
感谢@ikegami和@David我的答案我把你的答案和它的工作结合起来,大部分来自大卫。 正则表达式:
^[\w-\._\+%]+@(?!(live|hotmail|outlook|aol|yahoo|rocketmail|gmail|gmx\.com|mail\.com|inbox\.com|icloud|aim|yandex|zoho)$)(?:[\w-]+\.)+[\w]{2,6}$