Javascript 电子邮件验证问题
我正在验证用户的电子邮件地址。但当我调用该函数并在未验证电子邮件地址的情况下提交表单时,问题出现了。请告诉我那个密码有什么问题Javascript 电子邮件验证问题,javascript,Javascript,我正在验证用户的电子邮件地址。但当我调用该函数并在未验证电子邮件地址的情况下提交表单时,问题出现了。请告诉我那个密码有什么问题 function validateEmail(fld) { var error=""; var tfld = trim(fld.value); var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ; var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\
function validateEmail(fld) {
var error="";
var tfld = trim(fld.value);
var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
if (fld.value == "") {
fld.style.background = 'Pink';
error = "You didn't enter an email address.\n";
} else if (!emailFilter.test(tfld)) {
fld.style.background = 'Pink';
error = "Please enter a valid email address.\n";
} else if (fld.value.match(illegalChars)) {
fld.style.background = 'Pink';
error = "The email address contains illegal characters.\n";
} else {
fld.style.background = 'White';
}
return error; }
试试看 始终返回true或false:-
function validateEmail(fld) {
var error="";
var tfld = trim(fld.value);
var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
if (fld.value == "") {
fld.style.background = 'Pink';
error = "You didn't enter an email address.\n";
} else if (!emailFilter.test(tfld)) {
fld.style.background = 'Pink';
error = "Please enter a valid email address.\n";
} else if (fld.value.match(illegalChars)) {
fld.style.background = 'Pink';
error = "The email address contains illegal characters.\n";
} else {
fld.style.background = 'White';
}
if (error == '')
{
return true;
}
else
{
alert(error);
return false;
}
}
按如下方式调用函数:-
<input type="submit" onsubmit="return validateEmail(email.val)">
请告诉我和每个人问题是什么,即您收到了什么错误消息,或者您期望的输出是什么,以及实际输出是如何不同的。特别是,如果表单未经验证就提交,那么您的问题肯定在于表单,而不是此函数,除非我误解了。如果我将字段留空,那么它会告诉您没有输入电子邮件地址,但当我输入非法字符时,它就不起作用。并且始终在服务器端执行最终验证。不要依赖用户打开JavaScript!而且也不要依赖用户实际使用HTML代码发送数据…
<input type="submit" onsubmit="return validateEmail(email.val)">