Javascript检查@在电子邮件中

时间:2015-04-25 19:50:36

标签: javascript html function email input

我正在尝试检查HTML输入表单,看它是否包含@符号。

HTML:

    <input id="emailCheck" type="text" name="uid" />
    <input type="button" value="Continue" onClick="continuePlease()" />
    <br>
    <p id="invalidEmail"></p>

使用Javascript:

var at = document.getElementById("emailCheck").value.indexOf("@");

function continuePlease() {
    if (at == -1) {
    document.getElementById("invalidEmail").innerHTML = "<font color=red>Please enter a valid email.</font>";
    } else {
    changeData();
    }
}

function changeData() {
    document.getElementById("title").innerHTML = "<font color=#33FF00> Information Confirmed </font>";
    document.getElementById("lock").innerHTML = "<font color=red>This Account is now locked.</font>";
    document.getElementById("time").innerHTML = "<font color=white> You will have 30 minutes to send the provided wallet address the correct amount of Bitcoin or the account will unlock again. </font>";                  
    document.getElementById("daemon").innerHTML = "<font color=white> Our Bit-Daemon is watching the address 24/7, once a payment is made, the contents of the  account will be sent to your Email. Thanks, Paypal Trader.</font>";
    document.getElementById("pig").innerHTML = "";
    document.getElementById("cow").innerHTML = "";
    document.getElementById("invalidEmail").innerHTML = "<font color=red>Please enter a valid email.</font>";
}

发生的事情是,当它执行函数continuePlease()时,它会执行IF和ELSE中的代码。 它应该做一个,而不是两个。

我想我需要一种更好的方法来检查@符号。

3 个答案:

答案 0 :(得分:1)

您可以使用这个方便的功能来测试:

function validateEmail(email) {
    var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    return re.test(email);
}

您可以使用以下方式传递电子邮件:

var email = document.getElementById("email").value;

此功能将返回true或false,具体取决于您提供的电子邮件字符串。

答案 1 :(得分:1)

at作业移至continuePlease的第一行。我不认为它正在做两件事它总是在做else块并检查else块的最后一行与if块是一样的。

答案 2 :(得分:1)

这样做。它应该工作。

function continuePlease() {
    var at = document.getElementById("emailCheck").value.indexOf("@");

    if (at == -1) {
       document.getElementById("invalidEmail").innerHTML = "<font color=red>Please enter a valid email.</font>";
    } else {
       changeData();
    }
}