使用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)
答
也许矫枉过正一个已知的字符串的简单使用,但如果你需要支持一般的解析,你可以,如果你的环境支持,使用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
你相信这些字符串的内容是什么?执行它是否可行? – Marco
不,我不想执行所有的一切。只需要获取它的一部分。 – nikksan