如何解决如何取消转义反斜杠转义字符?
如何在 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 举报,一经查实,本站将立刻删除。