不允许特定的电子邮件扩展

时间:2017-09-05 16:30:22

标签: javascript regex

我想禁止.co email extension,下面是我正在使用的正则表达式。

/^[_a-zA-Z0-9-]+[_a-zA-Z0-9-+]*(\.[_a-zA-Z0-9-+#]+)*(\#[_a-zA-Z0-9-+]+)*@[a-zA-Z0-9_-]+(?!\.net.net|\.som|\.coom|\.om|\.como|\.ney|\.fuck|\.com.com)+(\.[a-zA-Z0-9-]+)*(\.(([0-9]{1,3})|([a-zA-Z]{2,4})))$/"

当我尝试将.co添加到列表时,.com和其他人也失败了。

/^[_a-zA-Z0-9-]+[_a-zA-Z0-9-+]*(\.[_a-zA-Z0-9-+#]+)*(\#[_a-zA-Z0-9-+]+)
    *@[a-zA-Z0-9_-]+(?!\.net.net|\.som|\.coom|\.om|\.como|\.ney|\.fuck|\.co|\.com.com)+(\.[a-zA-Z0-9-]+)*(\.(([0-9]{1,3})|([a-zA-Z]{2,4})))$/"

以下格式应该失败。

something@some.co

1 个答案:

答案 0 :(得分:1)

正则表达式引擎在第一次出现时就满足了。这么说,最短的子字符串应该是列表中的最后一个。

另一件值得关注的事情是立即检查主题字符串的结尾:

^[_a-zA-Z0-9-]+[_a-zA-Z0-9-+]*(\.[_a-zA-Z0-9-+#]+)*(\#[_a-zA-Z0-9-+]+)*@[a-zA-Z0-9_-]+(?!(?:\.net.net|\.som|\.coom|\.om|\.como|\.ney|\.fuck|\.com\.com|\.co)$)(\.[a-zA-Z0-9-]+)*(\.(([0-9]{1,3})|([a-zA-Z]{2,4})))

Live demo