gpt4 book ai didi

javascript - 如何取消转义 JavaScript 字符串文字值?

转载 作者:搜寻专家 更新时间:2023-11-01 04:30:18 48 4
gpt4 key购买 nike

我正在使用 解析 代码(使用 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>"');

最佳答案

您正在寻找 eval(是的,您没有听错):

text = document.querySelector('script').textContent;

dqString = /"(\\.|[^"])*"/g

s = text.match(dqString)[0]

raw = eval(s);

alert(raw);
<script>
(function() {
$('#3bf779cd').replaceWith("<div class=\'shows\'>\n<\/div>");
window.fadeItems();
});
</script>

关于javascript - 如何取消转义 JavaScript 字符串文字值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35579856/

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