正则表达式应该只接受 5 只有 7 个字母表

regex should accept only 5 only 7 alphabet

我有这个正则表达式

var reg = /^[a-zA-Z0-9._]+@[gmail | yahoo | hotmail]{5,7}.[com | net | org]{3}$/

我只想 "gmail hotmail and yahoo" 接受“.com .net 和 .org” 有没有办法...根据我的需要设置上面的正则表达式。

以及如何设置范围,使其只接受 5 和 7 个字符的长度。

正确的语法如下所示:

^[a-zA-Z0-9._]+@(gmail|yahoo|hotmail)\.(com|net|org)$

说明

方括号 ([]) 用于测试一组给定字符中的一个字符。圆括号 (()) 用于测试一组给定字符串中的特定字符串(不是字符)。您应该将 | 读为 "or"。

例子

  • [abc] 将匹配 abc.
  • (A1|B2|C2) 将匹配 A1B2C3.

此外,如果您不将 . 字符转义 (\.),则 . 字符将被解释为 "any character",除非在方括号内使用。