【问题标题】:Email regex allow spaces in validation电子邮件正则表达式允许验证中的空格
【发布时间】:2016-07-08 02:46:44
【问题描述】:

好的,所以我需要一个带有 Javascript 的电子邮件验证器。所以,我使用了来自StackOverflow answer 的代码。问题涉及在您的电子邮件地址之后放置一个空格。如果我输入example@gmail.com,则不会发生任何错误。如果我输入example@gmail.com,请注意末尾添加的空格,证明电子邮件地址无效。人们会犯错误,添加的空间不应认为电子邮件地址无效。我该如何解决这个问题...

function validateEmail(email) {
  var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  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);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <p>Enter an email address:</p>
  <input id='email'>
  <button type='submit' id='validate'>Validate!</button>
</form>

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

【问题讨论】:

  • var email = $("#email").val().trim(); 可能就足够了。见answer

标签: javascript email


【解决方案1】:

您需要添加 \s*。字符 \s 将仅匹配单个空格字符,* 将匹配它0 - nth 次。

你需要把它放在/^(...{2,})) ***insert \s* here *** $/之后;

这是完整的更新行:

function validateEmail(email) {
  var re = /^\s*(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))\s*$/;

function validateEmail(email) {
  var re = /^\s*(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))\s*$/;
  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);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <p>Enter an email address:</p>
  <input id='email'>
  <button type='submit' id='validate'>Validate!</button>
</form>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2011-07-27
    • 2019-11-24
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多