使用JavaScript进行电子邮件验证

使用JavaScript进行电子邮件验证,javascript,Javascript,可能重复: 这是我的第一篇文章,我有一个小问题。我正在尝试验证表单上的电子邮件地址,但没有成功。我在网上找到了这个片段,但它似乎不起作用。我现在正在使用Javascript来验证它。我通常不使用JS,因此任何帮助都将不胜感激 <script type="text/javascript"> function ValidateEmail(inputText) { var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-

可能重复:

这是我的第一篇文章,我有一个小问题。我正在尝试验证表单上的电子邮件地址,但没有成功。我在网上找到了这个片段,但它似乎不起作用。我现在正在使用Javascript来验证它。我通常不使用JS,因此任何帮助都将不胜感激

<script type="text/javascript">
    function ValidateEmail(inputText)  
    {  
       var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;  
       if(inputText.value.match(mailformat))  
       {  
           document.forms.emailform();  
           return true;  
       }  
       else  
       {  
           alert("You have entered an invalid email address!");  
           document.forms.emailform();  
           return false;  
       }  
    }  

函数ValidateEmail(inputText)
{  
var mailformat=/^\w+([\.-]?\w+*@\w+([\.-]?\w+*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{  
document.forms.emailform();
返回true;
}  
其他的
{  
警报(“您输入的电子邮件地址无效!”);
document.forms.emailform();
返回false;
}  
}  



您必须在validateEmail之后添加括号才能调用它,否则它将假定您正在尝试返回一个方法。

看看这个例子,说明如何在Javascript中执行此操作:

<html>

<head>
<script type="text/javascript">
<!--
function validateEmail() {
    var emailText = document.getElementById('email').value;
    var pattern = /^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$/;
    if (pattern.test(emailText)) {
        return true;
    } else {
        alert('Bad email address: ' + emailText);
        return false;
    }
}

window.onload = function() {
    document.getElementById('email_form').onsubmit = validateEmail;
}
</script>

</head>
<body>

<form id="email_form">
<input type="text" id="email">
<input type="submit">
</form>

</body>
</html>


你所说的不工作是什么意思?您的表单是否未提交(当您调用
document.forms.emailForm()
时可能有输入错误,这是无效的)?regex试图禁止一些完全有效且真实的电子邮件地址(其中包含
+
的电子邮件地址,以及
博物馆
信息
TLD中的电子邮件地址).HTML5定义了一个新的输入
type=“email”
。它具有属性
pattern
,您可以在其中指定正则表达式。更多细节
onsubmit="return validateEmail()"
<html>

<head>
<script type="text/javascript">
<!--
function validateEmail() {
    var emailText = document.getElementById('email').value;
    var pattern = /^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$/;
    if (pattern.test(emailText)) {
        return true;
    } else {
        alert('Bad email address: ' + emailText);
        return false;
    }
}

window.onload = function() {
    document.getElementById('email_form').onsubmit = validateEmail;
}
</script>

</head>
<body>

<form id="email_form">
<input type="text" id="email">
<input type="submit">
</form>

</body>
</html>
<!DOCTYPE html>

<html>
    <body>
        <form>
            <input type="email" pattern="^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$">
            <input type="submit">
        </form>
    </body>
</html>