gpt4 book ai didi

javascript - 从 JavaScript 字符串中获取/捕获所有变量名和值

转载 作者:行者123 更新时间:2023-12-03 04:19:48 25 4
gpt4 key购买 nike

所以,我有一个很大的 .js 文件,我想获取其中定义的所有变量及其值。我想从 PHP 中做到这一点(如果是 JS,那就很容易了)。

例如,我有以下代码:

var var1="var value";
var var2={
something:'value'
};
window.var3 = 80+100
;var4='another var value';

我应该得到一个这样的列表:

  1. 变量“var1”,值为:“var value”
  2. 变量“var2”,值为:{something:'value'}
  3. 变量“var3”,值为:80+100
  4. 变量“var4”,其值为:“另一个 var 值”

我试图使用正则表达式来做到这一点,但我找不到保证捕获所有内容的正则表达式。

以下是我遇到的一些问题:

  1. 线路可以在没有;的情况下终止
  2. 实际值可以包含;
  3. 可能没有值(例如 var variable1;)

这是我制作的正则表达式:

/(?:var[\s]+|window\.){0,1}([^;\s]*)(?:\s*)=(?:\s*)([^;]*)(?:\s*);{0,1}/i

有人有不同的方法吗?或者更好的正则表达式?

我也在考虑使用解释 JS 的 PHP 库:J4P5V8js

谢谢

最佳答案

要真正确保捕获所有变量内容,您肯定需要使用 JS 解析器,运行代码,然后从解析器输出完整的变量上下文。最后你还可以得到这样的东西:

var whatever = (function() { return 4; })();

这是完全有效的 JavaScript,可能会发生,并且通常比返回更复杂。

但是,如果这是用户提供的代码,则运行代码确实会存在一些安全问题,因为有人可以轻松地将对外部资源的调用包含到代码中。所以这里需要额外小心。

关于javascript - 从 JavaScript 字符串中获取/捕获所有变量名和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43999238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com