检查表格中的正确电子邮件

时间:2012-07-24 15:04:15

标签: javascript forms

  

可能重复:
  Validate email address in Javascript?

我正在尝试使用此javascript检查有效的电子邮件,但我不需要它做的是检查表单中的字段是否为空白,以防有人没有电子邮件地址(不要问)。

function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2) 
  {alert(alerttxt);return false;}
else {return true;}
}
}

function validate_form(thisform)
{
with (thisform)
{
  if (validate_email(email,"Not a valid e-mail address.")==false)
  {email.focus();return false;}
}
}

我尝试将'&lt; 1调整为小于1或根本没有调整,但似乎没有效果。

2 个答案:

答案 0 :(得分:2)

只需检查它是否为空,否则在其上应用email regex /验证功能。

另外,你应该a)不要使用with和b)不要从测试功能发出警告。

function test_email(address) {
    var atpos = address.indexOf("@"),
        dotpos = address.lastIndexOf(".");
    if (atpos < 1) // "@" at position 0 or not found (-1)
        return false;
    if (dotpos-atpos < 2) // last "." before position 2 or not found (-1)
        return false;
    if (atpos > dotpos) // last "." before the "@"
        return false;
    return true;
}

function validate_form(thisform) {
    var input = thisform.email;
    if (input.value) // != ""
        if (!test_email(input.value)) {
            alert("Not a valid e-mail address.");
            email.focus();
            return false;
        }
}

答案 1 :(得分:0)

正则表达式可能是最好的方法,前面的问题有一个很好的正则表达式可供使用,尽管有更复杂和完整的可用。 Validate email address in JavaScript?

使用正则表达式并使其适合您的代码,您将拥有一个类似于此的函数

function validate_email(field,alerttxt) {
    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,}))$/;
    if (re.test(field)) {
        return true;
    } else {
        alert(alerttxt);
        return false;
    }
}