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