2010-04-19 109 views
7

tengo una variable de JavaScript que me echo a cabo usando PHP que se muestra así en el origen de la página:JavaScript: una barra invertida como parte de la cadena

var db_1 = 'C:\this\path'; 

Cuando fijo el valor de un campo de texto con esa variable como tal:

$('#myinput').val(db_1); 

¡Las barras han desaparecido y solo quedan los otros caracteres!

¿Por qué es esto y cómo puedo poner las barras invertidas en ??

Gracias a todos

+0

var db_1 = 'C: \\ este \\ ruta'; – jAndy

Respuesta

11

Una barra invertida es un carácter de escape en JS. Se pierden cuando se analiza el literal de la cadena.

No se puede volver a ponerlos, porque no tiene forma de saber dónde estaban. Debes asegurarte de que permanezcan en la cuerda en primer lugar (representándolas con una secuencia de escape).

var db_1 = 'C:\\this\\path'; 
+0

He intentado usar replace '\' con '\\' pero eso no funcionó. – Abs

+1

Si con "reemplazar" quiere decir "reemplazar en el código fuente" entonces debería funcionar (y lo hace para mí). Si quiere decir "Usar el método de reemplazo de cadenas de JavaScript", por supuesto, no funcionará. Lo remito a la segunda oración de mi respuesta. No hay caracteres de barra invertida en la cadena, solo secuencias de escape. Como no hay caracteres de barra diagonal inversa, no obtendrá ningún cambio si intenta reemplazarlos por otra cosa. – Quentin

+0

Ah, ya veo, haré un str_replace con PHP entonces. ¡Gracias! – Abs

2

que puede utilizar:

echo json_encode('C:\this\path'); 

json_encode se puede utilizar como una función de filtro para el código JavaScript .

Cuestiones relacionadas