jQuery:使用'name_lastName@company.com'格式进行电子邮件验证

时间:2014-09-04 16:40:35

标签: javascript jquery regex validation

大家好:

我正在尝试使用以下格式使用jQuery验证电子邮件:

  

[姓名] _ [姓氏] @ company.com (始终以'company.com'结尾)

以下是代码示例:

HTML:

<body>
  <form onSubmit='validate(); return false;'>
  <p>Enter an email address:</p>
  <input id='email'>
  <button type='submit' id='validate'>Validate!</button>
  </form>

  <br/>
  <h2 id='result'></h2>
<script>

CSS:

  article, aside, figure, footer, header, hgroup, 
  menu, nav, section { display: block; }

JS:

function validateEmail(email) { 

    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@(usmp.pe)$/;
    return re.test(email);
}

function validate(){
  $("#result").text("");
  var email = $("#email").val();
  if (validateEmail(email)) {
    $("#result").text(email + " is valid :)");
    $("#result").css("color", "green");
  } else {
    $("#result").text(email + " is not valid :(");
    $("#result").css("color", "red");
  }
  return false;
}

$("form").bind("submit", validate);

我正在使用以下jsFiddle

通过此示例,我可以验证以“company.com”结尾的电子邮件,但我无法弄清楚如何在名称和姓氏之间的“@”之前验证带有“_”符号的电子邮件。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您只需在您的名字正则表达式后面添加一个破折号,然后再次复制它以获取姓氏。

它应该是这样的:

var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))_(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@(company.com)$/;

如果您使用此行替换代码,它应该可以正常工作。

(编辑:将短划线更改为下划线)