如何在 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)));
答案 0 :(得分:1)
您可以使用内置的 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));