验证使用JavaScript和正则表达式不起作用

问题描述:

。这是我的代码。我试图验证电子邮件,但点击验证按钮时没有任何事情发生。请回复。 它没有显示消息,我不知道它为什么不显示。 这不是一个复杂的代码:验证使用JavaScript和正则表达式不起作用

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script> 




    function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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,}))$/; 
    return re.test(email); 
} 

function validate() { 

    $("#result").text(""); 
    var email = $("#email").val(); 
    if (validateEmail(email)) { 
    $("#result").text(email + " is valid :)"); 
    $("#result").css("color", "green"); 
    } else { 
    $("#result").text(email + " is not valid :("); 
    $("#result").css("color", "red"); 
    } 
    return false; 
} 


$("#validate").bind("click", validate); 

    </script> 


</head> 





<form> 
    <p>Enter an email address:</p> 
    <input id='email'> 
    <button type='submit' id='validate' >Validate!</button> 
</form> 

<h2 id='result'></h2> 
+0

你或许应该绑定'validateEmail',因为没有'validate' – Damiano

+0

不好意思,但后来又它不会工作 – user7441072

+0

也开放开发者控制台,并查看有 –

尝试把你的脚本标签在你的身体的底部,或者把你的绑定代码在onload钩。

您的代码现在被构造的方式,您的绑定代码在加载主体中的元素之前运行,即绑定到不存在的元素。它适用于其他人的原因可能是因为加载顺序依赖于浏览器。因此,如果重新排序代码仍然无效,那么知道您使用的浏览器会很有趣。

+0

非常感谢你亲爱的,解决了问题 – user7441072

+0

上面的一个工作示例回答https://jsfiddle.net/o2gxgz9r/20344/ – Ananda