2012-11-13 114 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."); 
}