使用javascript从字符串获取变量内容

使用javascript从字符串获取变量内容

问题描述:

我想从字符串解析JavaScript变量。 类似的东西,使用javascript从字符串获取变量内容

var string = "<script>window.arr=[1, 2.0, false]</script>"; 

有什么办法,我可以从这里得到一个变量的内容?

//something like 
function getVarContent(variable, string){ 
    var re = new RegExp(''); 
    return eval(re.exec(string)) 
} 
getVarContent('arr', string) 
+0

你相信这些字符串的内容是什么?执行它是否可行? – Marco

+0

不,我不想执行所有的一切。只需要获取它的一部分。 – nikksan

也许矫枉过正一个已知的字符串的简单使用,但如果你需要支持一般的解析,你可以,如果你的环境支持,使用DOMParser。 (原因见RegEx match open tags except XHTML self-contained tags为什么正则表达式可能不是答案)

[插入所有关于eval()ing串平时注意事项]

var parser = new DOMParser(); 
 
var string = "<script>window.arr=[1, 2.0, false]<\/script>"; 
 
var doc = parser.parseFromString(string, "text/html"); 
 

 
var script = doc.querySelector('script') 
 
eval(script.innerHTML) 
 
console.log(window.arr)

+0

我真的不想执行整个脚本。 – nikksan

你应该把

var string = "<script>window.arr=[1, 2.0, false]</script>"; 
//only valid letters 
var getVar = string.match(/\[[[0-9,.a-z ]+]/g); 
console.log(getVar); 
var array = JSON.parse(getVar); 
console.log(array); 
+0

这适用于上述示例,但我需要一个通用解决方案来获取特定变量。 – nikksan