【问题标题】:Email regex validation javascript电子邮件正则表达式验证 javascript
【发布时间】:2011-10-27 04:44:10
【问题描述】:

我确实了解验证电子邮件的问题,但我想知道这是否会阻止任何拥有合法电子邮件的人。

我正在寻找有效电子邮件列表来自己测试,但没有找到。

任何人都有有效的电子邮件,但这个正则表达式认为它不是?

emailRegex.test('Emailing@domain.aero')

很长的一行:

emailRegex = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.(([a-z]{2}|AERO|ARPA|ASIA|BIZ|CAT|COM|COOP|EDU|GOV|INFO|INT|JOBS|MIL|MOBI|MUSEUM|NAME|NET|ORG|PRO|TEL|TRAVEL|XN--0ZWM56D|XN--11B5BS3A9AJ6G|XN--3E0B707E|XN--45BRJ9C|XN--80AKHBYKNJ4F|XN--90A3AC|XN--9T4B11YI5A|XN--CLCHC0EA0B2G2A9GCD|XN--DEBA0AD|XN--FIQS8S|XN--FIQZ9S|XN--FPCRJ9C3D|XN--FZC2C9E2C|XN--G6W251D|XN--GECRJ9C|XN--H2BRJ9C|XN--HGBK6AJ7F53BBA|XN--HLCJ6AYA9ESC7A|XN--J6W193G|XN--JXALPDLP|XN--KGBECHTV|XN--KPRW13D|XN--KPRY57D|XN--LGBBAT1AD8J|XN--MGBAAM7A8H|XN--MGBAYH7GPA|XN--MGBBH1A71E|XN--MGBC0A9AZCG|XN--MGBERP4A5D4AR|XN--O3CW4H|XN--OGBPF8FL|XN--P1AI|XN--PGBS0DH|XN--S9BRJ9C|XN--WGBH1C|XN--WGBL6A|XN--XKC2AL3HYE2A|XN--XKC2DL3A5EE0H|XN--YFRO4I67O|XN--YGBI2AMMX|XN--ZCKZAH|XXX)(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)|(^$)/i;

【问题讨论】:

标签: javascript regex email email-validation


【解决方案1】:

Dominic Sayers 创建了一个电子邮件边缘案例列表,您可以使用这些案例来验证您的测试。你可以找到它here

您的正则表达式不接受有效地址test@[IPv6:::]"test\ test"@iana.org"test@io"

【讨论】:

  • +1 用于 IPv6 参考 - 您一定是一位非网络工程师,实际上已经在考虑这个问题了 :)
【解决方案2】:

这是一个美丽的表达,但很快就会被淘汰:

http://www.icann.org/en/topics/new-gtld-program.htm

全球顶级域名 (yourbestfriend@worksfor.coke) 即将到来,它们将在几年内破坏我们所有的脚本 :)

不过,为了回答您的问题,不,我无法使用今天对“有效”域扩展名的有限限制来破解您的电子邮件检查。

【讨论】:

    【解决方案3】:

    这里是html输入字段和按钮字段的代码

    <input input type="text" name="txtEmailId" id="txtEmailId" /> 
       <input type="submit" class="button" value="Suscribe" name="Suscribe" 
                onclick="javascript:ShowAlert()" />
    

    现在将以下函数添加到页面标题

    <script type="text/javascript">
     function ShowAlert() {
      var email = document.getElementById('txtEmailId');
      var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (!filter.test(email.value)) {
            alert('Please provide a valid email address');
            email.focus;
            return false;
        }
        else {
            alert("Thanks for your intrest in us, Now you 
            will be able to receive monthly updates from us.");
            document.getElementById('txtEmailId').value = "";
        }
     }
     </script> 
    

    在这里您可以找到关于 JavaScript 中的电子邮件验证的文章

    【讨论】:

    • 这将失败并使用有效的电子邮件,如Jean-François@anydomain.museum
    • 您可以根据您的要求放置您的电子邮件验证正则表达式......这只是一个验证简单电子邮件(如“k.tapankumar@live.com”)的示例
    猜你喜欢
    • 2014-05-11
    • 2012-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    相关资源
    最近更新 更多