只允许@。 _和电子邮件验证中的字母数字字符

时间:2013-06-18 05:57:03

标签: javascript regex email-validation

我想只允许@。和_作为电子邮件中的特殊字符,但它始终显示错误

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="";

我实际上不知道正则表达式所以请告诉我输入内容。

4 个答案:

答案 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)

此正则表达式将满足您的要求:

^[\w._]+@(?:[\w-]+\.)+[\w]{2,6}$

了解更多信息,请访问: Validate email address in JavaScript?

相关问题