Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:作为字符串一部分的反斜杠_Javascript_Jquery - Fatal编程技术网

JavaScript:作为字符串一部分的反斜杠

JavaScript:作为字符串一部分的反斜杠,javascript,jquery,Javascript,Jquery,我有一个JavaScript变量,我使用PHP呼出该变量,如页面源代码中所示: var db_1 = 'C:\this\path'; 当我使用该变量设置文本字段的值时,如下所示: $('#myinput').val(db_1); 斜杠消失了,只剩下其他字符了 为什么会这样?我怎样才能把斜线放回原处 谢谢大家反斜杠在JS中是转义字符。当解析字符串文本时,它们将丢失 你不能把它们放回去,因为你不知道它们在哪里。首先必须确保它们保留在字符串中(用转义序列表示) 试试这个: var db_1 = '

我有一个JavaScript变量,我使用PHP呼出该变量,如页面源代码中所示:

var db_1 = 'C:\this\path';
当我使用该变量设置文本字段的值时,如下所示:

$('#myinput').val(db_1);
斜杠消失了,只剩下其他字符了

为什么会这样?我怎样才能把斜线放回原处


谢谢大家

反斜杠在JS中是转义字符。当解析字符串文本时,它们将丢失

你不能把它们放回去,因为你不知道它们在哪里。首先必须确保它们保留在字符串中(用转义序列表示)

试试这个:

var db_1 = 'C:\\this\\path';
有关更多信息: 您可以使用:

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

json\u encode
可以用作某些JavaScript代码的过滤函数。

我曾尝试用'\\'替换'\',但没有效果。如果“替换”是指“在源代码中替换”,那么它应该可以工作(对我来说也是如此)。如果你的意思是“使用JavaScript字符串替换方法”,那么它当然不会起作用——我让你回到我回答的第二句话。字符串中没有反斜杠字符,只有转义序列。由于没有反斜杠字符,如果你尝试用其他字符替换它们,你将不会得到任何更改。啊,我明白了,那么我将用PHP进行str_替换。谢谢@Abs:它需要输出为\\最初,您无法在事后修复它。另外,您实际拥有的是
c:
后跟一个制表符(
\t
是Javascript中的一个制表符),后跟
hispath
(因为
\p
不特殊,所以反斜杠被忽略)。因此PHP输出的内容必须是
var db_1='C:\\this\\path'
这样反斜杠就被转义了。如果PHP在您的设置中使用了一级转义,您甚至可能需要将其写成
C:\\\\this\\\\path
echo json_encode('C:\this\path');