通过正则表达式从javastring函数获取所有var

时间:2014-03-20 11:56:17

标签: javascript regex

嗨,我是Regex的新手并试图让自己低于 javascript中有一个字符串,

"function(){var a; var a,b,c;}"

我试图从中找到[a,b,c]。 请建议我获取在字符串中声明的所有变量,什么是正则表达式。

1 个答案:

答案 0 :(得分:0)

一个非常非常有操控性的解决方案,但会满足您的目的

function uniq(value,index,self){
    return self.indexOf(value) === index;
}

var str = "function(){var a; var a,b,c;}";
var ptrn = /var [^;]+/g;
var match;
var matches = []
while ( ( match = ptrn.exec(str) ) != null )
{
    matches.push(match.join().split(" ")[1]);
}
console.log(matches.join(",").split(",").filter(uniq));

但如果你理解这段代码,你就不必搜索:

  • 如何从js array获取唯一值
  • 如何将模式与exec匹配只返回第一个匹配,我们必须循环以获取其余值
  • 最后添加一个带功能的过滤器。