2013-03-24 104 views
5

我正在爲一個網站編寫一個插件,除非我能夠向其中添加JS代碼,否則我無法控制它的一個插件(實際上它是一組由過時產生的html文檔wysiwyg html編輯器)。獲取以特定字符串開頭的所有JS變量

爲了我的目的,我需要獲取以某種方式命名的所有變量。名稱始終以zzz開頭並以數字結尾,從zzz1zzz999999。現在我做的是以下幾點:

for (var i=1; i<999999; i++) { 
    if (typeof window['zzz'+i] !== 'undefined') { 
     ArrayOfAllFoundVariables.push(window['zzz'+i]) 
    } 
} 

我不知道是否有檢測不是通過undefineds一百萬迭代等這些變量更有效的方式。

回答

7

您可以遍歷所有頂級變量(window的屬性),然後測試它們的名稱是否匹配某個正則表達式模式。像以前一樣收集匹配的變量。

var pattern = /^zzz[0-9]+/; 
for (var varName in window) { 
    if (pattern.test(varName)) { 
     ArrayOfAllFoundVariables.push(window[varName]); 
    } 
} 
1

Mikke打我吧:)

for (element in window) { 
    if (element.substring(0,3) == 'zzz') { 
    ArrayOfAllFoundVariables.push(window[element]); 
    } 

}

,但我錯過了數部分:) ...做得好Mikke ...

相關問題