电子邮件正则表达式允许在验证中使用空格

Email regex allow spaces in validation

本文关键字:空格 验证 正则表达式 电子邮件      更新时间:2023-09-26

好的,所以我需要一个带有Javascript的电子邮件验证器。因此,我使用了此StackOverflow答案中的代码。问题涉及在您的电子邮件地址放置一个空格。如果我输入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>

您需要

添加's*。 字符's将仅匹配单个空格字符,*将匹配 0 - 第 n 次。

你会想把它放在/^(...{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>