2012-11-13 73 views
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" 
    } 
} 

现在这个任务点是从一个输入电子邮件地址返回用户名和域名。我删除了其他函数和变量以帮助更好地关注问题。功能; for循环或如果statment?

我需要先验证电子邮件地址。我需要确保有一个“@”和一个“。”在输入的字符串中输入true和false来返回值。真有字符串,没有字符串就是假。当我运行该文件时,返回值始终为false。我想不通,如果是我在validEmail功能循环或if语句中btnParseAddress_onclick功能

+0

这是什么语言?为什么不使用emailAddress.indexOf('@')> 0? –

回答

1

可以避开for环通过使用IndexOf两次:

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