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

allow only @ . _ and alphanumeric characters in email validation

本文关键字:数字字符 电子邮件 验证      更新时间:2023-09-26

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

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

我不懂正则表达式,请告诉我该怎么输入

你可以使用这个正则表达式:

/^'w+([-+.']'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*$/

我不知道这是不是你需要的,但我还是试试吧

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

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

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

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

电子邮件地址并不像你在问题中预期的那么简单。但是,是的,你可以预料到,你将面对的大多数电子邮件地址都将尽可能简单。在这种情况下,验证电子邮件地址的简单正则表达式如下:

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

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

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

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