2010-06-13 46 views
14

Tôi đang sử dụng JSON.parse mẹ đẻ của Firefox() để phân tích một số chuỗi JSON bao gồm biểu thức thông thường như các giá trị, ví dụ:Làm cách nào để thoát khỏi dấu gạch chéo ngược trong JSON?

var test = JSON.parse('{"regex":"/\\d+/"}'); 

Các '\ d' ở trên ném một ngoại lệ với JSON.parse (), nhưng hoạt động tốt khi tôi sử dụng eval (đó là những gì tôi đang cố gắng để tránh).

Điều tôi muốn là bảo vệ '\' trong regex - có cách nào khác thân thiện với JSON để thoát khỏi nó không?

Trả lời

13

Bạn cần phải thoát khỏi dấu xồ nguợc thoát đã có trong đó :) như thế này:

var test = JSON.parse('{"regex":"/\\\\d+/"}'); 

Bạn có thể kiểm tra nó một chút ở đây: http://jsfiddle.net/h3rzE/

+4

Cảm ơn, mà làm việc một nét duyên dáng! Bạn có thể giải thích lý do tại sao tôi cần phải thoát khỏi sự trốn thoát? Tôi đã nghĩ rằng việc thoát khỏi "\ b" một lần sẽ là đủ cho các mục đích của trình phân tích cú pháp ... là có một lớp phân tích khác đang diễn ra đằng sau hậu trường yêu cầu nó? Ngoài ra, cảm ơn liên kết jsfiddle - Tôi đã sử dụng trình phân tích cú pháp tại http://json.parser.online.fr/ để thử nghiệm, nhưng khi tôi thử "\\\\ d" nó đã nói với tôi rằng một trong các dấu gạch chéo ngược cần phải được thoát! – peteb

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