2013-03-24 110 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 ...

相关问题