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