我想只允许@。和_作为电子邮件中的特殊字符,但它始终显示错误
php文件中的html代码:
//email
`echo "<td>email*</td><td><input type='text' id='regemail' name='regemail' onblur='javascript:valemail1()' onkeypress='javascript:hideemail()'></td>";`
`echo "</tr><tr id='emailerror'></tr>";`
javascript代码(在函数valemail1中):
//regex
//if(!/^[a-zA-Z0-9]+$/.test(regemail)){
//document.getElementById('emailerror').innerHTML="<td><div id='redalert'>"+"only alphanumeric characters, an underscore (<b>_</b>), an (<b>@</b>) and a dot (<b>.</b>) are allowed in email"+"</div></td>";
//eemail=1;`
//return;`
//}else{
//}
//no error
if(eemail==0)
{
document.getElementById('emailerror').innerHTML="";
}
函数hideemail仅将错误隐藏为
document.getElementById('emailerror').innerHTML="";
我实际上不知道正则表达式所以请告诉我输入内容。
答案 0 :(得分:4)
您可以使用此正则表达式:
/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
答案 1 :(得分:0)
电子邮件地址并不像您在问题中预期的那样简单。但是,是的,您可以预期,您将面临的大部分电子邮件地址将尽可能简单。 在这种情况下,用于验证电子邮件地址的简单正则表达式如下:
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
但是,如果您只想允许_
(以及@
和.
),表达式将会更加简单:
\b[A-Z0-9._]+@[A-Z0-9.]+\.[A-Z]{2,4}\b
here您会发现更多正则表达式来验证您的电子邮件地址,包括官方标准:RFC 2822,兼容的正则表达式,以防您想要验证几乎所有类型的电子邮件地址!
答案 2 :(得分:0)
我不知道这是否是你需要的,但我会试一试
var emailform = "^[-0-9A-Za-z!#$%&'*+/=?^_`{|}~.]+@[-0-9A-Za-z!#$%&'*+/=?^_`{|}~.]+";
if(!email.match(emailform)){
document.getElementById('emailerror').innerHTML="Invalid email";
return false;
}
答案 3 :(得分:0)