我将使用 正则表达式 来解析 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
的东西。请参考https://dev59.com/jGw15IYBdhLWcg3wZq1r。 - Chris Lear