1

我的验证函数有问题,我只在一个函数中完成了它,我想添加电子邮件验证,例如@和数字 1-9。我该如何添加它?

html:

<form onsubmit="return validate();" name="formValidation">
    <label>First Name:</label>
    <input type="text" name="firstName" /><br /><br />
    <label>Last Name:</label>
    <input type="text" name="lastName" /><br /><br />
    <label>E_mail:</label>
    <input type="text" name="Email" /><br /><br />
    <label>Confirm E_mail:</label>
    <input type="text" name="confirmEmail" /><br /><br />
    <label>Address:</label>
    <input type="text" name="Address" /><br /><br />
    <label>Telephone nr:</label>
    <input type="text" name="telephoneNr" /><br /><br />
    <br />
    <p>submit your form: </p><input type="submit" value="Submit" />
</form>

js:

function validate(){
    if(document.formValidation.firstName.value == "" ||
    document.formValidation.lastName.value == "" ||
    document.formValidation.Email.value == "" ||
    document.formValidation.confirmEmail.value == "" ||
    document.formValidation.Address.value == "" ||
    document.formValidation.telephoneNr.value == "")
    {
        alert("Please fill all the boxes before submitting!");
        return false;
    } else {
        alert('Your form has been submitted!');
    }

}
4

4 回答 4

3

来自http://www.w3resource.com/javascript/form/email-validation.php

此函数将使用 javascript 验证电子邮件:

function ValidateEmail(mail)   
{  
 if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(mail))  
  {  
    return (true)  
  }  
    alert("You have entered an invalid email address!")  
    return (false)  
}  

要验证电话号码:

function validatePhone(phone) {
    var error = "";
    var stripped = phone.replace(/[\(\)\.\-\ ]/g, '');

   if (stripped == "") {
        error = "You didn't enter a phone number.";
    } else if (isNaN(parseInt(stripped))) {
        phone = "";
        error = "The phone number contains illegal characters.";

    } else if (!(stripped.length == 10)) {
        phone = "";
        error = "The phone number is the wrong length. Make sure you included an area code.\n";
    }
}
于 2012-11-29T15:32:04.553 回答
1

您想使用正则表达式。已经有很多问题描述了如何做到这一点:

https://stackoverflow.com/search?q=javascript+regex+phone+number+e​​mail

于 2012-11-29T15:28:02.780 回答
0

我可以给你一个我用过的示例函数。它并不完美,但只需极少的编辑即可在您的环境中快速轻松地设置:

function mail_check(){
var email   = document.getElementById(\'email\').value;
var email_check = email.split("@");
if (email_check[1]){var email_check2 = email_check[1].split(".");}
if (!email_check[1] || !email_check2[0] || !email_check2[1]) {
document.getElementById(\'mail_status\').innerHTML = "<font color=red>Invalid Email address!</font>";
return false;}
else if (email_check[1] && email_check2[0] && email_check2[1]) {
document.getElementById(\'mail_status\').innerHTML = "<font color=green>Valid Email address!</font>";
return true;}
}

我想很明显我有一个空的 span 元素,它会通过 OnKeyUp js 事件实时更改(基本上 onkeyup 调用该函数,这会产生系统实时检查的错觉......虽然它确实如此,所以我想这不是错觉之后所有 - 哈!)

希望有帮助。如果您需要进一步的帮助,请告诉我!

干杯!

于 2012-11-29T15:35:11.997 回答
0

这是一个很常见的任务,你尝试解决它的方式就像 2008 年一样,嘿,快到 2013 年了)

第一次尝试查找regExp以这种方式解决它。

但是,是的,为什么不使用 HTML5表单验证Modernizir来回退旧的/不受支持的浏览器。

您将获得对所有现代浏览器的本机支持,它比 JS 更快,加上编写良好的 js,它将以适当的方式关心它,因为某些原因不支持form validations.

于 2012-11-29T15:35:22.333 回答