2010-06-13 15 views
14

estoy usando JSON.parse nativa de Firefox() para analizar algunas cadenas JSON que incluyen expresiones regulares como los valores, por ejemplo:¿Cómo puedo escapar de las barras diagonales inversas en JSON?

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

El '\ d' en lo anterior se produce una excepción con JSON.parse (), pero funciona bien cuando uso eval (que es lo que trato de evitar).

Lo que quiero es conservar el '\' en la expresión regular - ¿hay alguna otra manera JSON amigable para escapar?

Respuesta

13

tiene que escapar las barras invertidas de escape ya no :) así:

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

puede probarlo un poco aquí: http://jsfiddle.net/h3rzE/

+4

Gracias, que funciona a las mil maravillas! Sin embargo, ¿te importaría explicar por qué necesito escapar de los escapes? Hubiera pensado que escapar del "\ b" una vez sería suficiente para los propósitos del analizador ... ¿hay otra capa de análisis detrás de escena que lo requiera? También, gracias por el enlace jsfiddle - Estaba usando el analizador en http://json.parser.online.fr/ para probarlo, pero cuando probé el "\\\\ d" me dijo que uno de ¡las barras invertidas necesitan ser escapadas! – peteb

Cuestiones relacionadas