使用javascript从字符串中获取变量内容
我想从字符串中解析javascript变量。 诸如此类使用javascript从字符串中获取变量内容,javascript,regex,Javascript,Regex,我想从字符串中解析javascript变量。 诸如此类 var string = "<script>window.arr=[1, 2.0, false]</script>"; 你应该把 var string = "<script>window.arr=[1, 2.0, false]</script>"; //only valid letters var getVar = string.match(/\[[[0-9,.a-z ]+]/g); con
var string = "<script>window.arr=[1, 2.0, false]</script>";
你应该把
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);
var string=“window.arr=[1,2.0,false]”;
//只有有效的字母
var getVar=string.match(/\[[0-9,.a-z]+]/g);
console.log(getVar);
var array=JSON.parse(getVar);
console.log(数组);
对于已知字符串的简单使用来说,可能有些过分,但是如果您需要支持常规解析,您可以在您的环境支持的情况下使用DOMParser
。(有关regex可能不是答案的原因,请参阅)
[插入有关eval()ing
strings的所有常见注意事项]
var parser=new DOMParser();
var string=“window.arr=[1,2.0,false]”;
var doc=parser.parseFromString(string,“text/html”);
var script=doc.querySelector('script')
eval(script.innerHTML)
console.log(window.arr)
您信任这些字符串的内容吗?只执行它是否可行?不,我不想执行全部。只需获取其中的一部分。上面的例子就是这样,但我需要一个通用的解决方案来获取特定的变量。我真的不想执行整个脚本。
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);