如何只为电子邮件友好字符验证输入?



我有JavaScript验证整个电子邮件一旦输入:

function ValidateEmail(inputText)
{
var mailformat = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$/
if(inputText.value.match(mailformat))
{
alert("This is not a valid email address");
return false;
}
}

但是如何检查单个字符是否对电子邮件有效?所以我想防止用户输入错误的电子邮件字符。所以函数参数应该是这样的,只有当存在无效字符时才返回false:

m
my
mya
....
myaddress
....
myaddress@mail.com

好答案:https://stackoverflow.com/a/46181/3764369

问题遵循RFC 5322https://emailregex.com/

w3代码示例:
function ValidateEmail(inputText)
{
var mailformat = /^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/;
if(inputText.value.match(mailformat))
{
alert("Valid email address!");
document.form.email.focus();
return true;
}
else
{
alert("You have entered an invalid email address!");
document.form.email.focus();
return false;
}
}

最新更新