【发布时间】:2018-04-25 20:22:22
【问题描述】:
给定一个字符串,例如(这是一个 javascript 源文件):
"...attr1: i, TARGET: <JS_EXPRESSION>, attr3: {..."
如何使用已知的TARGET 键解析 Javascript 表达式?
JS 表达式可以任意复杂并包含逗号,所以看起来正则表达式除了找到初始目标键 TARGET 之外不会做任何事情。周围的代码也可以包含任意的 JS 代码。
这是我试图证明这不是家庭作业:
return source.replace(/TARGET: ([^,]*),/g, function(a, b){
return operationOnExpression(b);
});
但这在<E> 的更复杂情况下会失败,例如console.log('hi', 'there');
【问题讨论】:
-
然后呢?您是否尝试过自己解决问题?您能否在您的问题中添加minimal reproducible example,以突出显示您尝试过的内容和无效的内容?
-
完整的字符串是什么样的?也许是 JSON?
-
如果
TARGET前后可以出现任意代码,则无法解析 -
@Luca 我无法提供一个最小的示例,因为我正在构建一个 webpack 加载器。这是我能提出的最简单的问题。我需要一种方法来解析这个值
-
看起来像XY Problem
标签: javascript compiler-construction