如何将字符串存储在具有单引号和双引号的JavaScript变量中?

时间:2012-09-13 20:36:49

标签: javascript variables quotes double-quotes

我需要创建一个存储动态生成的HTML内容的变量。从PHP返回的String中的html内容可能有单引号或双引号。

html_content=<?=$string;?>;

该字符串可能有双引号,如下所示:

<span id="something">something else</span>

或单引号如下:

<span id='something'>something else</span>

然后,我怎样才能在javascript中正确保存字符串?我不能使用单引号或双引号。

3 个答案:

答案 0 :(得分:2)

您可以在输出之前通过在服务器端修改它来保存这种字符串,如下所示:

html_content = "<?=addslashes($string);?>"

然后,方法addslashes($string)将在运行时转义任何双引号,然后将其提供给JavaScript变量。

答案 1 :(得分:1)

您可以在存储之前始终使用JavaScript's escape function序列化字符串。那会有用。

我认为这里更大的问题是单引号实际上无效,就像你尝试在id属性中那样使用它们(根据HTML规范)。它必须是双引号。如果那些来自的代码不在你的控制之下,那么你可以做的并不多,它只是被打破了;但如果它在你的控制之下,你也应该修复它。

答案 2 :(得分:0)

使用json_encode将几乎所有变量从PHP传递给JavaScript。

html_content=<?=json_encode($string)?>;

如果是字符串,它会自动添加引号和任何必要的转义。