2011-08-15 46 views
2

我明白验证电子邮件的问题,但我不知道这是否会阻止任何有合法电子邮件的人。电子邮件正则表达式验证javascript

我正在寻找一个有效的电子邮件列表来测试它自己,但没有找到任何。

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

emailRegex.test('[email protected]') 

很长的行:

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; 
+0

您应该检查此主题http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses –

+0

P租赁修复您的标题,以便描述问题,而不仅仅是列出主题。 –

回答

5

Dominic Sayers创造的电子邮件边缘的情况下,你可以用它来验证您的测试清单。你可以找到它here

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

+0

+ 1为IPv6参考 - 你必须是一个非网络工程师实际上已经考虑过这个:) – Brian

0

这里是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中

+0

这将失败,有效的电子邮件像'让 - 弗朗索瓦@ anydomain.museum' – Toto

+1

你可以把你的电子邮件验证正则表达式根据您的需求....这只是一个例子,验证一个简单的电子邮件,如“[email protected]” –

相关问题