【问题标题】:allow only @ . _ and alphanumeric characters in email validation只允许 @ 。 _ 和电子邮件验证中的字母数字字符
【发布时间】:2013-06-18 05:57:03
【问题描述】:

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

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

我实际上不知道正则表达式,所以请告诉我要输入什么。

【问题讨论】:

  • 请注意,该要求将禁止某些有效的电子邮件地址,最重要的是那些包含-+ 的电子邮件地址。
  • 您是否搜索过电子邮件验证? SO上有很多关于这个的问题,例如stackoverflow.com/questions/46155/…
  • “我实际上不知道正则表达式” - 那么你应该学习如何使用它(google.com/search?q=regex+tutorial+php)。

标签: javascript regex email-validation


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我不知道这是否是你需要的,但我会试一试

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

        \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,兼容的正则表达式,以防你想验证几乎所有类型的电子邮件地址!

        【讨论】:

        • 不,这不是 众所周知的用于验证电子邮件的正则表达式。这是:ex-parrot.com/pdw/Mail-RFC822-Address.html(注意,用于验证电子邮件的正则表达式是 6.2kB 长)
        • RFC 2822 已经过时多年了。
        猜你喜欢
        • 2016-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多