Javascript是有效的

Javascript是有效的,javascript,function,email-validation,Javascript,Function,Email Validation,使用JSLint我无法使我的isEmailValid工作,代码有什么问题?我收到了不同的错误消息,例如在使用local之前未定义它,或者未包含@invalid character或^,但是对于电子邮件,它可能有符号“^” 我建议使用正则表达式: function validateEmail(email) { var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[

使用JSLint我无法使我的isEmailValid工作,代码有什么问题?我收到了不同的错误消息,例如在使用local之前未定义它,或者未包含@invalid character或^,但是对于电子邮件,它可能有符号“^”


我建议使用正则表达式:

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);
} 
功能验证电子邮件(电子邮件){
变量re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\'+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.];
返回重新测试(电子邮件);
} 

另请参见:

您得到了关于
local
的错误,因为您实际上没有将其声明为函数中的局部变量

不要包含或使用括号。因此,无论如何,将它们用作:

var e = (email.split("@"), local = /[^\w.!#$%&*+-\/=?^_{|}~]/, domain = /[^\w.-]/);
相当于:

local = /[^\w.!#$%&*+-\/=?^_{|}~]/;
domain = /[^\w.-]/;
var e = (email.split("@"), local, domain);
email.split("@");
local;
var e = domain;
e
然后将被设置为正在求值的括号的结果,该括号仅包含用于计算的操作数。因此,最后一行相当于:

local = /[^\w.!#$%&*+-\/=?^_{|}~]/;
domain = /[^\w.-]/;
var e = (email.split("@"), local, domain);
email.split("@");
local;
var e = domain;
而且,因为这似乎不是你想要的,你可能不想要括号:

var e = email.split("@"), local = /[^\w.!#$%&*+-\/=?^_{|}~]/, domain = /[^\w.-]/;

使用此正则表达式验证客户端电子邮件地址:

/.@./
然后通过向该地址发送电子邮件来执行真正的服务器端验证

工作电子邮件地址可以而且确实存在不符合任何规范的情况。限制用户是没有意义的,因为他们的有效电子邮件地址看起来是错误的,同时允许用户输入看起来正确但却是假的电子邮件地址(例如,iwontgiveyoumyrealemailaddress@noreply.com在计算机看来是真实的,但可能不是)