Javascript 电子邮件验证不起作用
Posted
技术标签:
【中文标题】Javascript 电子邮件验证不起作用【英文标题】:Javascript email validation does not work 【发布时间】:2012-08-19 20:03:04 【问题描述】:我的代码有什么问题?我找不到解决方案。
var re = "/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.[0-9]1,3\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]2,))$/";
var email= document.getElementById("email").value;
if (re.test(email) == false)
document.getElementById("email").focus();
return false;
双引号引起的问题,谢谢! 由于我的声誉,我不能投票:-(
【问题讨论】:
为什么这么复杂?see here
您告诉我们出了什么问题。你有错误吗?它没有正确验证吗?它是否传递了所有输入,或者它没有传递任何有效的电子邮件,或者它给出了误报/否定?
重复***.com/questions/46155/…
天哪!这是一个复杂的验证!
你不需要投票,只需accept the correct answer。
【参考方案1】:
就像 Suresh 建议的那样,您应该删除正则表达式字符串周围的引号 (")。 所以你的第一行应该是:
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.[0-9]1,3\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]2,))$/;
我在下面制作了一个工作示例:
<script>
function test()
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9] 1,3\.[0-9]1,3\.[0-9]1,3\.[0-9]1,3\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]2,))$/;
var email= "test@somedomain.com";
if (re.test(email) == false)
alert("invalid email address");
return;
alert("valid address");
</script>
<button onclick="test()">TEST</button>
【讨论】:
【参考方案2】:让我们试试这个对我来说很聪明
function IsEmail(email)
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]2,4)+$/;
return regex.test(email);
if(!IsEmail(mailString))
$("#somediv").text(" Email should be valid ");
return false;
【讨论】:
人 - 问题是“我的代码有什么问题”。这不是“如何验证电子邮件地址”。 @jim竹子..删除“”到你的正则表达式字符串。以上是关于Javascript 电子邮件验证不起作用的主要内容,如果未能解决你的问题,请参考以下文章