How to validate an email address in JavaScript 如何用 JavaScript 验证电子邮件地址

How to validate an email address in JavaScript 如何用 JavaScript 验证电子邮件地址

var tureMail = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/;

以上为邮箱的正则表达式,下面是和输入的进行比较
if(!tureMail.test(yourValue)){
alert("请输入正确的电子邮件");
}

使用正则表达式最好了。

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(String(email).toLowerCase());}

下面是接受 unicode 的常规解释的例子:

var re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;

但是请记住,我们不应该仅仅依赖于 JavaScript 验证。很容易禁用 JavaScript。这也应该在服务器端进行验证。
实际操作:

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() {
  var $result = $("#result");
  var email = $("#email").val();
  $result.text("");
  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;}
$("#validate").on("click", 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+\.\S+/

函数示例:

function validateEmail(email) {
    var re = /\S+@\S+\.\S+/;
    return re.test(email);}

挺多的挺复杂的。 如果你只是想弄清楚最明显的语法错误,这样做:
^\S+@\S+$
它通常能捕捉到用户犯下的明显的错误,并确保表单基本上是正确的,这就是 JavaScript 验证的意义所在。

当你决定使用正则表达式来验证电子邮件的时候,就得明白这个方法有时候不太灵光。 一旦你认识到这一点,就会发现有很多只能做个七七八八。
简而言之,要绝对肯定地确定用户输入的实际上是一封电子邮件,唯一的方法就是发送一封电子邮件