你好,我是Regex的新手,并试图得到下面,javascript中有一个字符串
"function(){var a; var a,b,c;}"
,我试着从中找出[a,b,c]。请建议我得到所有变量声明在字符串,什么将是正则表达式。
一个非常非常操纵性的解决方案,但将达到您的目的
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数组中获取唯一值
- 与exec匹配模式如何只返回第一个匹配,我们必须循环获取其余的值
- 终于添加了一个带有函数的过滤器。