功能; for loop或if语句?

时间:2012-11-13 02:38:52

标签: function loops if-statement for-loop

function validEmail (emailAddress)
{
    for (var index=0; index < emailAddress.length; index++)
    {
        if ( emailAddress[index] == "@") 
        {
            for (var  count=0; count <emailAddress.length; count++)
            {
                if (emailAddress[count] == ".")
                {
                    return true;
                }
            }
        }
        else
        {
            return false;
        }
    }
}

function btnParseAddress_onclick()
{
    var emailAddress = addressTextbox.value;

    var userName = emailUsername(emailAddress);
    var domain = emailDomain (emailAddress);
    var valid = validEmail (emailAddress);

    if (valid)
    {
        outputTextbox.value = "Username:" + userName + "\nDomain:" + domain
    } 
    else
    {
        outputTextbox.value = "Invalid Email Address"
    }
}

现在,此任务的目的是从输入的电子邮件地址返回用户名和域名。我删除了其他功能和变量,以帮助更好地关注问题。

我需要先验证电子邮件地址。我需要确保有一个“@”和一个“。”在输入的字符串中,返回值为true或false。确实有字符串而错误没有字符串。当我运行该文件时,返回值始终为false。我无法弄清楚它是在validEmail函数中的for循环还是在btnParseAddress_onclick函数中的if语句

1 个答案:

答案 0 :(得分:1)

您可以使用for两次来避免IndexOf循环:

if (emailAddress.IndexOf('.', emailAddress.IndexOf('@')+1) > 0) {
    Console.WriteLine("The e-mail address looks valid.");
}