匹配集合中的一个字符

时间:2016-08-11 16:48:46

标签: regex

我正在尝试编写regexp来验证电子邮件地址,我需要在“@”符号之前接受带有字母,数字,下划线,句号,连字符的地址以及之后的相同集合,但是只有一个'@ '登录这个地址。

目前我坚持这一点:/^[\w\.\-@]*$/i。我不能让它只接受一个'@'符号:{1}在集合中不起作用,而我找到的其他方法也不行。那么在集合中匹配一个字符的方法是什么?

1 个答案:

答案 0 :(得分:1)

您不能在字符类中使用量词(即[@{1}]将匹配@{1})。你需要的是“展开”你的角色类,将它分成两部分,取出你想要限制的角色,在两部分之间只出现一次:

/^[\w.-]+@[\w.-]+$/

请注意,此表达式至少需要3个字符,但这应该没问题,因为电子邮件地址不能少于3个字符。

此外,/i不区分大小写的修饰符是多余的,因为\w匹配大写和小写字母。

请参阅regex demo