正则表达式不允许符号多于一个

时间:2014-05-27 15:59:26

标签: javascript regex

我将以特定方式验证电子邮件地址。我想确保电子邮件只有一个@符号,而不是更多。

我无法弄清楚正则表达式应该是什么样的。我找不到任何关于如何匹配字符串中多个特定字符的好例子,但是让它第一次出现。

我想说的是:

/@.@/ or /@*@/ or /*@*@*/

到目前为止,没有任何工作。

表达式应匹配:

me@me@me.com
me@me@me@me.com
me@@me.com

不应该匹配:

me@me.com

3 个答案:

答案 0 :(得分:4)

替代正则表达式:

var email = "foo@bar.com";
if (email.split('@').length==2) {
  // only has 1 '@'
}

答案 1 :(得分:0)

为什么不匹配只包含的电子邮件 @:

^[^@]*?@[^@]*?$

答案 2 :(得分:0)

两个或多个@符号:@[^@]*@

编辑:可以通过三个步骤考虑正则表达式:

  • @:需要@符号(请注意,它没有^所以@符号可以在字符串中的任何位置
  • [^@]*:任何非@字符,或无
  • @:如果找到任何其他@符号,则表示匹配

我希望这至少可以解释一下正则表达式。