电子邮件验证问题
问题描述:
我正在验证用户的电子邮件地址。但是当我打电话给这个函数时出现了问题,并且表单没有验证邮件地址就提交了。请告诉我该代码有什么问题。电子邮件验证问题
function validateEmail(fld) {
var error="";
var tfld = trim(fld.value);
var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\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 = /^[^@][email protected][^@.]+\.[^@]*\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)">
答
function validateEmail(fld) {
var error="";
var tfld = trim(fld.value);
var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\w\w$/ ;
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
if (fld.value == "" || fld.value.length == 0) {
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; }
试试!
请告诉*我*(每个人)的问题是什么(即你得到了什么错误信息,或者你期望的输出以及实际输出的不同)。特别是,如果表单提交时未经验证,那么您的问题肯定存在于*表单*中,而不是与此函数一起使用,除非我误解了? – 2010-12-06 11:06:34
如果我离开字段为空然后它告诉“你没有输入电子邮件地址”,但是当我输入非法字符,那么它不起作用。 – Adeel 2010-12-06 11:15:47