1
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"
    }
}

现在这个分配的重点是从输入的电子邮件地址返回用户名和域。我删除了其他函数和变量,以帮助更好地关注问题。

我需要先验证电子邮件地址。我需要确保有一个“@”和一个“。” 在输入的字符串中,并以真或假返回值。真有弦,假没有弦。当我运行文件时,返回值总是假的。我不知道它是我在 validEmail 函数中的 for 循环还是 btnParseAddress_onclick 函数中的 if 语句

4

1 回答 1

1

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

if (emailAddress.IndexOf('.', emailAddress.IndexOf('@')+1) > 0) {
    Console.WriteLine("The e-mail address looks valid.");
}
于 2012-11-13T02:43:48.743 回答