2014-01-07 62 views
0

我試圖轉換(我所發現的)最好的電子郵件驗證功能(位於:http://www.linuxjournal.com/article/9585?page=0,3)從PHP的JavaScript。無論「你不應該使用JavaScript進行驗證,因爲JavaScript可以被禁用」。顯然,我不能離開函數的checkdnsrr()部分,但其他所有內容都應該可以通過javascript來實現。Javascript測試()方法語法錯誤?

迄今爲止功能工作正常,直到這條線:else if(/\.\./.test(domain)) {

我知道這是沒有上下文的好看不中用,所以全功能如下。什麼也奇怪的是,它提供了「通行證」的行具有完全相同的正則表達式:這是之前使用幾行else if(/\.\./.test(local)) {。奇怪。

function validEmail(email) { 
    var isValid = true; 
    var atIndex = email.indexOf("@"); 
    var ending = email.length - 1; 
    if(typeof(atIndex) == "boolean" && !atIndex) { 
     isValid = false; 
    } 
    else { 
     var domain = email.substr(atIndex+1); 
     var local = email.substr(0, atIndex); 
     var localLen = local.length; 
     var domainLen = domain.length; 
     if(localLen < 1 || localLen > 64) { 
      // local part length exceeded 
      isValid = false; 
     } 
     else if(domainLen < 1 || domainLen > 255) { 
      // domain part length exceeded 
      isValid = false; 
     } 
     else if(local[0] == '.' || local[localLen-1] == '.') { 
      // local part starts or ends with '.' 
      isValid = false; 
     } 
     else if(/\.\./.test(local)) { 
      // local part has two consecutive dots 
      isValid = false; 
     } 
     else if(/^[A-Za-z0-9\\-\\.]+$/.test(domain) == false) 
      // character not valid in domain part 
      isValid = false; 
     } 
     else if(/\.\./.test(domain)) { 
      // domain part has two consecutive dots 
      isValid = false; 
     } 
     else if(/^(\\\\.|[A-Za-z0-9!#%&`_=\/$'*+?^{}|~.-])+$/.test(local.replace("\\\\",""))) { 
      // character not valid in local part unless 
      // local part is quoted 
      if(/^"(\\\\"|[^"])+"$/.test(local.replace("\\\\",""))) { 
       isValid = false; 
      } 
     } 
    } 
    return isValid; 
} 
+1

問題是什麼?什麼是錯誤? – thefourtheye

+0

'isValid =「false」;'? – SLaks

+0

它在控制檯中顯示「SyntaxError:syntax error」。 – Amygdala

回答

1

你在前面if錯過了{

因此,else沒有if連接到它。

+0

我到底怎麼想我?大聲笑 – Amygdala