javascript正则表达式:提取变量

时间:2013-01-31 17:35:32

标签: javascript regex

我有一个像这样的javascript变量列表 var_111,var_222,var_132,var_122bb ...

下划线后面的字符串是来自远程服务器的响应,所以我不能事先指定它们。

我想运行一个迭代遍历所有var_ *变量的for循环。例如console.log所有变量。

我想可以用正则表达式完成,但我还没有学到它。希望有人可以帮忙!

1 个答案:

答案 0 :(得分:1)

str.match(/var_\d+/g).forEach(function(v)
{
    console.log(v); // v here is a variable such as var_111
});

基于下面的说明,假设实际发生的是服务器正在设置一堆全局变量,其名称是您无法控制的,您想要的是:

for (var k in window)
   if (window.hasOwnProperty(k) && k.match(/^var_\d+$/))
      console.log(k)

这会遍历所有全局变量并将它们与正则表达式进行比较,以获得var _ ###类型的变量,然后将它们打印出来。您可以使用window[k]获取值。这是有效的,因为所有全局变量实际上都是window对象的属性。