-1

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

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

4 回答 4

4

您可以使用此正则表达式:

/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
于 2013-06-18T06:10:08.070 回答
0

电子邮件地址并不像您在问题中预期的那么简单。但是,是的,您可以预期,您将面临的大多数电子邮件地址都将尽可能简单。在这种情况下,下面给出了一个用于验证电子邮件地址的简单正则表达式:

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

但是,如果您只想允许_(以及@and .)表达式将是(对您来说更简单):

\b[A-Z0-9._]+@[A-Z0-9.]+\.[A-Z]{2,4}\b

在这里你会发现更多的正则表达式来验证你的电子邮件地址,包括官方标准:RFC 2822,兼容的正则表达式,如果你想验证几乎所有类型的电子邮件地址!

于 2013-06-18T06:06:35.340 回答
0

我不知道这是否是您需要的,但我会尝试一下

var emailform = "^[-0-9A-Za-z!#$%&'*+/=?^_`{|}~.]+@[-0-9A-Za-z!#$%&'*+/=?^_`{|}~.]+";
if(!email.match(emailform)){
 document.getElementById('emailerror').innerHTML="Invalid email";
 return false;
}
于 2013-06-18T06:09:15.567 回答
0

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

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

欲了解更多信息,请访问: 在 JavaScript 中验证电子邮件地址?

于 2013-06-18T06:10:16.523 回答