javascript正则表达式 - 如何只允许一个连字符?

时间:2016-06-22 20:33:29

标签: javascript

我有以下jscript代码:

 var email = /^[a-z0-9'*+/=?^_`{|}~-]+(?:\.[a-z0-9'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;

  if (s.match(email)) {
        return true;
  } else {
        return false;
  }

现在终端用户说他们想要" - "在电子邮件地址的本地部分。 (我甚至不知道这是合法的) 但我认为我需要防止多个连字符 - 根据http://rumkin.com/software/email/rules.php 而且我也不认为它可以用连字符开头。

但我不确定如何更改此代码来实现这一目标。

我尝试了什么

var email = /^[a-z0-9'*+/=?^_`{|}~-]+(?:\.\-[a-z0-9'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;

这允许我输入连字符,但它并不限制为连字符。

1 个答案:

答案 0 :(得分:0)

您不仅限于在一个正则表达式中执行所有操作:

-