从表达式中提取变量
variable extraction from expression
我有以下问题,但没有任何线索:
对于字符串中的表达式:"func1( A+ func2(A)+ func3(B)+ C + 4 )"
需要一种方法来识别所有变量,在本例中为 A、B、C。 表达式可以不同,因此不应仅对此模式进行硬编码。例如:它可能只是func1(A)+func2(B)
,变量是 A 和 B。
一点背景:还是以"func1( A+ func2(A)+ func3(B)+ C + 4 )"
为例,假设我有A的其他表达式:"A=sum(a)"
和"B=sum(b)"
和"C=sum(c)"
,我想做一个合并,使第一个表达式变成:"func1( sum(a)+ func2(sum(a))+ func3(sum(b))+ sum(c)+4)"
,为了实现这一点,我想我需要一种方法来识别第一个表达式中的所有变量, 问题就是这样来的。
编辑:刚刚意识到这有点类似于js缩小过程...刚刚在这个问题中添加了 uglifyjs 标签
任何答案或线索都非常感谢!
已解决:这是通过 exprima 解决的.js它适用于 AST。请检查接受的答案和提交
这应该会让你大部分时间到达那里。 我看到你可能遇到的一个问题是函数在 JavaScript 中也是变量,所以你必须挑选出所有不是被调用者的变量(标识符)。
$(function() {
$('#out').text(
JSON.stringify(
esprima.parse("func1( A+ func2(A)+ func3(B)+ C + 4 )"),
null, 2
)
);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdn.rawgit.com/jquery/esprima/2.7.1/esprima.js"></script>
<pre id='out'>
</pre>
相关文章:
- 如何每秒从一个变量中提取一定次数的javascript/html
- 从IPython/Jupyter内核中提取一个变量到javascript
- 如何在HTML源代码中提取javascript变量
- 用于提取基于点概念的变量的动态Regex
- 正在从$scope变量中提取值
- Javascript变量作用域:从回调函数中提取变量
- 从导入的 HTML/JS 文件中提取变量
- 在MVC视图中的变量中使用javascript 从@模型中提取
- 从jQuery变量中提取数据,增加's left,将剥离的数据放回变量中
- 如何在解析html页面时从html页面中的javascript函数中提取变量的值
- 如何从php中的会话数组中提取未知数量的元素,并将它们用作JavaScript中的单独变量
- 使用HTML中数据字段提取的变量进行计算
- 将javascript中的JSON字段提取到变量中
- 正则表达式提取PHP中的JavaScript变量
- 从函数中提取变量
- 如何在函数中提取变量并放入另一个函数
- 主干视图在模型完成提取后获取模型变量
- 使用 javascript 从 URL 中提取特定变量
- 从表达式中提取变量
- 如何使用JavaScript变量提取JSON字符串