我有這個變種如何刪除從JavaScript var轉義的反斜槓?
var x = "<div class=\\\"abcdef\\\">";
這是
<div class=\"abcdef\">
但我需要
<div class="abcdef">
我怎樣才能 「UNESCAPE」 這個變種刪除所有轉義字符?
我有這個變種如何刪除從JavaScript var轉義的反斜槓?
var x = "<div class=\\\"abcdef\\\">";
這是
<div class=\"abcdef\">
但我需要
<div class="abcdef">
我怎樣才能 「UNESCAPE」 這個變種刪除所有轉義字符?
可以更換一個反斜槓通過正則表達式,然後用剛報價報價和String#replace
功能:
var x = "<div class=\\\"abcdef\\\">";
x = x.replace(/\\"/g, '"');
document.body.appendChild(
document.createTextNode("After: " + x)
);
注意,正則表達式只是尋找一個反斜槓;在文字中有兩個,因爲你必須在正則表達式文字中用反斜槓(就像在字符串文字中)反斜槓。
在正則表達式結尾的g
告訴replace
在整個字符串(「global」)中工作;否則,它只會取代第一場比賽。
試試這個:
x = x.replace(/\\/g, "");
var x = "<div class=\\\"abcdef\\\">";
alert(x.replace(/\\/gi, ''));
你需要使一個反斜槓而不是三個。
像這樣:
var x = "<div class=\"abcdef\">";
'<div class=\\\"abcdef\\\">'.replace(/\\\"/g, '"')
其他的答案中有你刪除所有的反斜線,你只是想刪除的那些befoew引號。
您可以使用JSON.parse
到UNESCAPE斜線:
function unescapeSlashes(str) {
// add another escaped slash if the string ends with an odd
// number of escaped slashes which will crash JSON.parse
let parsedStr = str.replace(/(^|[^\\])(\\\\)*\\$/, "$&\\");
try {
parsedStr = JSON.parse(`"${parsedStr}"`);
} catch(e) {
return str;
}
return parsedStr ;
}
這將刪除所有的反斜線,問題是如何刪除反斜槓逃逸** **。 – vinsa
12 upvotes從字面上錯誤的答案。 –