2017-11-11 105 views
0

我想從字符串解析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

回答

1

也許矯枉過正一個已知的字符串的簡單使用,但如果你需要支持一般的解析,你可以,如果你的環境支持,使用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

0

你應該把

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