2013-05-15 51 views
0

我希望在电子邮件地址中只允许有一个符号,并且只包含(a-z,A-Z,下划线(_),点(。)和短划线( - ))。这是我迄今为止。 感谢One @在电子邮件地址

var email = document.forms["register"]["email"].value; 
var atpos = email.indexOf("@"); 
var dotpos = email.lastIndexOf("."); 

if (atpos < 3 || dotpos < atpos + 4 || dotpos + 2 >= email.length) 
{     
    alert("You have not entered a valid Email address, please check for mistakes and re-submit"); 
    return false; 
} 
+0

我有一个包含数字的电子邮件地址... – Quentin

+0

检查这个线程,http://stackoverflow.com/questions/46155/validate-email-address-in-javascript?rq=1 – tdgtyugdyugdrugdr

+0

'' – moonwave99

回答

-2

你想要的是一种叫做regular expression。基本上你可以指定一个模式,并让javascript检查你的输入,看看它是否符合该模式。下面的javascript函数应该返回true,即输入是一个有效的电子邮件地址,虽然有很多话题讨论哪个正则表达式最适合这个确切的目的。

function emailIsValid(email) { 
    var regex = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/; 
    return regex.test(email); 
} 
+0

这比它复杂得多。请参阅http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address – ya23

+0

正则表达式可能会复杂得多,但必须在“将它验证世界上每一个电子邮件地址“和”我会永远需要它是准确的“。我提供的正则表达式是可以接受的,并且可以在99%的时间内工作。然而,了解到有些人更喜欢更准确的解决方案,但我指出,有很多关于哪个正则表达式最适合使用的讨论。 – Maloric

+1

@Maloric是的,这已经被多次详细讨论过。这就是为什么你会陷入低谷。 – Ryan