Javascript 在javascpricpt中,代码不会验证来自表单的电子邮件

Javascript 在javascpricpt中,代码不会验证来自表单的电子邮件,javascript,html,validation,email,Javascript,Html,Validation,Email,嗨,我知道这是否是问这个问题的正确地方,但我的代码有一个问题,我无法解决。我尝试过许多不同的算法,但都没有成功。我正在尝试验证来自表单的电子邮件。 下面是代码(表单为html格式) 函数是有效字符串(str){ var quot=“\”; 如果(str.indexOf(quot)!=-1) 返回false; var badStr=“$%^&*()+[]{}或; var i=0, P 而(i

嗨,我知道这是否是问这个问题的正确地方,但我的代码有一个问题,我无法解决。我尝试过许多不同的算法,但都没有成功。我正在尝试验证来自表单的电子邮件。 下面是代码(表单为html格式)

函数是有效字符串(str){
var quot=“\”;
如果(str.indexOf(quot)!=-1)
返回false;
var badStr=“$%^&*()+[]{}或;
var i=0,
P
而(i
我的评论中提到的使用解析器库的示例

var eAddr=document.getElementById('eAddr'),
check=document.getElementById('check'),
pre=document.getElementById('out');
check.addEventListener('click',函数(evt){
pre.textContent=!!emailAddresses.parseOneAddress(eAddr.value.trim());
},false);

测试模式

使用正则表达式是验证输入元素的最佳方法。下面的函数可以完美地验证电子邮件

函数regExValidate\u电子邮件(id){
var email=document.getElementById(id).value;
如果(电子邮件!=''){
var regExforEmail=/^[a-zA-Z0-9.+-]+@[a-zA-Z0-9.-]+\[a-zA-Z]{2,4}$/;
if(regExforEmail.test(电子邮件)){
$(“#”+id).css(“背景色”,“#ffffff”);
返回true;
}
否则{
警报('请输入有效的电子邮件id。\n下:yourname@example.com');
document.getElementById(id).style.backgroundColor='#feffea';
document.getElementById(id).value='';
Ctrlid=id;
setTimeout(“document.getElementById(Ctrlid.focus()”,1);
返回false;
}
}
else{document.getElementById(id.style.backgroundColor='white';}
}


电子邮件:
您不调用rigth函数,即调用

var email = document.getElementById("email").value;
if (isValidString(email)) {
  alert("invalid email");
  return false;
}

return true;
而不是

var email = document.getElementById("email").value;
if (emailcheck(email)) {
  alert("invalid email");
  return false;
}

return true;

基于Regex的电子邮件地址验证可能不是一个好主意:唯一真正的验证是发送确认邮件。但如果您想检查它们是否与模式匹配,则最好使用解析器,类似于此库的内容这是一个有效的电子邮件地址
email@123.123.123.123
和这封
电子邮件@[123.123.123.123]
和此
“email”@example.com
。这是一个无效的电子邮件地址
。email@example.com
和这封
电子邮件。@example.com
等等。。。