2013-04-27 40 views
5

Tôi đang xây dựng một truy vấn cho YQL và tôi đã gặp phải vấn đề ngớ ngẩn. Tôi sẽ không được dán trong toàn bộ truy vấn như không có nhu cầu, chỉ là một phần tôi đang gặp vấn đề với:JavaScript không thoát ký tự?

var query = encodeURI("... and xpath='//div[@class=\\'body bodySign\\']/p' ...")'; 

Như bạn có thể nhận thấy, tôi đã bổ sung thêm hai \ ký tự, nó là cần thiết cho truy vấn thực tế. Tôi đang sử dụng nhiều truy vấn và tôi cần phải nhân đôi các ký tự ' để chúng phân tích chính xác trong YQL.

Nhưng JavaScript thoát ký tự \. Nó không quan trọng bao nhiêu \ Tôi thêm (để "thoát" để sau \ ký tự) Tôi vẫn nhận được trái với chỉ một \ trong truy vấn của tôi.

Làm cách nào để giữ nhiều ký tự \ mà không có chúng thoát nhau?

Cảm ơn

+0

Vì vậy, bạn muốn kết thúc với '[@class = \\ 'body bodySign \\']'? – Musa

+0

Dấu gạch chéo ngược chỉ thoát khỏi ký tự sau, vì vậy \\ = \, \\\ = \\, vv 'encodeURI (" \\ 1 \\ 2 \\\ 3 ")' cho '"% 5C1% 5C2% 5C% 5C3 "' – Shomz

+2

Nếu bạn muốn một dấu gạch chéo ngược trong truy vấn của bạn, bạn cần '' \\ '' trong chuỗi của bạn (bạn cần phải thoát khỏi dấu gạch chéo ngược). Nếu bạn muốn hai, bạn cần '' \\\\ ''. – Matt

Trả lời

1

Nó phải là

var query = encodeURI("... and xpath='//div[@class=\\\\'body bodySign\\\\']/p' ...")'; 

Ví dụ, nhấn F12 và tìm kiếm tại đầu ra của console.log("\\\\").

Các vấn đề liên quan