2014-01-27 51 views
0

您好我想遍歷jquery函數中的所有已定義的變量,以將相應的變量名稱推送到數組中。下面遍歷所有已定義的變量jquery

function pushallvariables() 
{ 
    var list = []; 

    var name = /^[A-Za-z\s.]+$/; 
    var general = /^[A-Za-z0-9\s.\-\/]{2,20}$/; 
    var email = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/; 
    var digit = /^[+]?[0-9\s]+$/; 

     list.push('name'); 
     list.push('general'); 
     list.push('email'); 
     list.push('digit'); 
} 

我想修改該功能爲

function pushallvariables() 
{ 
    var list = []; 

    var name = /^[A-Za-z\s.]+$/; 
    var general = /^[A-Za-z0-9\s.\-\/]{2,20}$/; 
    var email = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/; 
    var digit = /^[+]?[0-9\s]+$/; 

    for each(variable as var) 
    { 
     list.push(var.name); 
    } 
    } 

的代碼給出,但修改後的功能是不正確的。我該如何編寫函數?

+0

AFAIK不,你不能這樣做......你可以創建這些變量是關鍵對象值對然後迭代那個對象 –

+0

你瘋了嗎? 'var'是javascript的關鍵字。你不能像變數 –

+0

@ Ashish Kumar一樣使用它。我知道。這就是爲什麼我已經提到修改過的功能是不正確的。我只想表達要實施的事情,那只是。 –

回答

4

做到這一點的最好的和明確的方法是:

var list = {}; 

list.name = /^[A-Za-z\s.]+$/; 
list.general = /^[A-Za-z0-9\s.\-\/]{2,20}$/; 
list.email = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/; 
list.digit = /^[+]?[0-9\s]+$/; 

沒有循環等

+0

謝謝你hsz。您的答案對我的案件工作得很好,並且是最好,最清晰的方式。 –