微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何取消转义反斜杠转义字符?

如何解决如何取消转义反斜杠转义字符?

如何在 JavaScript 中对这样的字符串进行转义

alert(\"Testing\");\nconsole.log(\"Hello\");

因此转义为:

alert("Testing");
console.log("Hello");

我有一个使用 api 并返回转义字符串的程序,但我想用文字表示替换字符串的转义版本,例如"\n" 换行。我看到一个question,它有这个代码转义一个字符串,但它没有说明如何撤消操作,为了更好地理解字符串是如何转义的,这里是有问题的函数转义一个字符串:

function addslashes(string) {
    return string.replace(/\\/g,'\\\\').
        replace(/\u0008/g,'\\b').
        replace(/\t/g,'\\t').
        replace(/\n/g,'\\n').
        replace(/\f/g,'\\f').
        replace(/\r/g,'\\r').
        replace(/'/g,'\\\'').
        replace(/"/g,'\\"');
}

我非常想撤销那个。提前致谢!

编辑

原来我可以这样做:

var string = "<!DOCTYPE html><script>alert(\"Hello\");<\/html>"
console.log(unescape(escape(string)));
      

解决方法

您可以使用内置的 unescape() 函数

const unescaped = unescape(`alert(\"Testing\");\nconsole.log(\"Hello\");`);
console.log(unescaped)

这是一个替代答案,可以撤消您所做的特定编码

const escapedString = `alert(\"Testing\");\nconsole.log(\"Hello\");`

function removeSlashes(string) {
    return string.replace('\\\\',/\\/g).
        replace('\\b',/\u0008/g).
        replace('\\t',/\t/g).
        replace('\\n',/\n/g).
        replace('\\f',/\f/g).
        replace('\\r',/\r/g).
        replace('\\\'',/'/g).
        replace('\\"',/"/g);
}

console.log(removeSlashes(escapedString));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。