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