2011-07-10 46 views

Trả lời

37

Bạn có thể thay thế một dấu chéo ngược theo sau là một trích dẫn chỉ với một trích dẫn thông qua một biểu thức chính quy và String#replace chức năng:

var x = "<div class=\\\"abcdef\\\">"; 
 
x = x.replace(/\\"/g, '"'); 
 
document.body.appendChild(
 
    document.createTextNode("After: " + x) 
 
);

Lưu ý rằng regex chỉ trông cho một dấu chéo ngược; có hai chữ trong nghĩa đen bởi vì bạn phải thoát khỏi dấu gạch chéo ngược trong các biểu thức chính quy với dấu gạch chéo ngược (giống như trong một chuỗi ký tự).

g ở cuối regex yêu cầu replace hoạt động trong suốt chuỗi ("toàn cầu"); nếu không, nó sẽ chỉ thay thế trận đấu đầu tiên.

4

Hãy thử điều này:

x = x.replace(/\\/g, ""); 
+3

này sẽ loại bỏ tất cả các gạch chéo ngược, câu hỏi là làm thế nào để loại bỏ dấu chéo ngược ** thoát **. – vinsa

+4

12 phiếu bầu cho nghĩa đen là câu trả lời sai. –

1
var x = "<div class=\\\"abcdef\\\">"; 
alert(x.replace(/\\/gi, '')); 
+8

Trình sửa đổi 'i' không cần thiết ở đây. –

+0

Không phải là cảnh báo hoặc định nghĩa của x –

+0

Kỹ sư Dollery, lol duhhh! – HelpNeeder

-4

Hãy để tôi đưa ra phiên bản này:

function un(v) { eval('v = "'+v+'"'); return v; } 

Chức năng này sẽ không chỉ đơn giản là loại bỏ dấu gạch chéo. Soạn thảo văn bản dưới dạng mã và trong trường hợp đầu vào chính xác, bạn sẽ nhận được kết quả không thoát đúng cho bất kỳ chuỗi thoát nào.

+3

Sử dụng eval là một thực tế không tốt; trừ khi bạn đã cẩn thận làm vệ sinh dữ liệu, điều này có thể cho phép mã độc thực thi. – Zev

+0

nhưng cách để không hiển thị \ 056 \ 045 như chuỗi – eri

-3

Bạn cần tạo một dấu gạch chéo ngược thay vì ba dấu gạch chéo ngược.
Như thế này:

var x = "<div class=\"abcdef\">";   
0
'<div class=\\\"abcdef\\\">'.replace(/\\\"/g, '"') 

câu trả lời khác có bạn xóa tất cả các gạch chéo ngược, bạn chỉ muốn xóa những befoew dấu ngoặc kép.

0

Bạn có thể sử dụng JSON.parse để unescape chém:

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 ; 
} 
Các vấn đề liên quan