【发布时间】:2016-02-23 14:14:31
【问题描述】:
我正在使用 regex 解析 javascript 代码(使用 ES 解析器,例如 Esprima,不是技术环境限制的选项)。
主题代码(被解析的代码是):
(function() {
$('#3bf779cd').replaceWith("<div class=\'shows\'>\n<\/div>");
window.fadeItems();
}).call(this);
我感兴趣的值是replaceWith的第一个参数,是一个字符串字面量。我正在使用正则表达式获取此变量:
const subjectValue = subjectCode.match(/\.replaceWith\(((["'])(?:(?=(\\?))\3.)*?\2)/m)[1].slice(1, -1);
console.log(subjectValue);
这个输出是:
<div class=\'shows\'>\n<\/div>
如何以输出如下的方式转义 subjectValue:
<div class='shows'>
</div>
简单地使用unescape没有任何效果。
如果我没记错的话,问题在于如何取消这个值:
console.log('"<div class=\\\'shows\\\'>\\\\n<\\\/div>"');
【问题讨论】:
-
看起来你需要使用类似
replace的东西。见stackoverflow.com/questions/6640382/…
标签: regex javascript javascript regex