引号内的引号太多——怎么办?

Posted

技术标签:

【中文标题】引号内的引号太多——怎么办?【英文标题】:Too many quotes within quotes -- what to do? 【发布时间】:2012-06-23 03:29:51 【问题描述】:

这是我网站上 CKEditor 使用的一段代码:

CKEDITOR.config.IPS_BBCODE          = "acronym":"id":"8","title":"Acronym","desc":"Allows you to make an acronym that will display a description when moused over","tag":"acronym","useoption":"1","example":"[acronym='Laugh Out Loud']lol[/acronym]", ...

如果你向右滚动一点,你会看到这个:

"[acronym='Laugh Out Loud']lol[/acronym]"

我需要将所有 CKEditor 代码存储在一个 javascript 字符串中,但我不知道该怎么做,因为字符串中同时包含 " 和 '。看到问题了吗?此外,我不认为我可以转义引号,因为我尝试这样做,但编辑器不起作用。

知道我能做什么吗?

【问题讨论】:

你所有的引用都属于引用。 请参阅 ***.com/q/97578/102937 以了解 Javascript 中的转义引号。 还有***.com/questions/2004168 【参考方案1】:

您可以尝试获取字符串并将 JavaScript 转义码注入其中。 JavaScript 在使用以下格式时基本上可以使用任何 unicode 值:\u#### - 因此,对于 ' 字符,代码是 \u0039,对于 " 字符,代码是 \u0034

所以 - 您可以将字符串的示例部分编码为:

\u0034[acronym=\u0039Laugh Out Loud\u0039]lol[/acronym]\u0034

或者,您可以尝试简单地转义引号,如下所示:

\"[acronym=\'Laugh Out Loud\']lol[/acronym]\"

当你遇到这种情况时,就会出现这里的问题:

"data:'prop1':'<a href="/url/here/">back\\slash</a>'"

当以这种方式转义时,变成:

"data:\'prop\':\'<a href=\"/url/here/\">back\\\\slash</a>\'\"

虽然这比第一个版本更具可读性 - 反序列化它在跨越对象空间时可能有点棘手,例如将 javascript 对象传递给需要反序列化为对象的 C# 解析器,然后重新- 序列化并返回。两种语言都使用 \ 作为它们的转义字符,并且有可能得到需要解决的脑筋急转弯的时髦场景。

\u#### 方法的优点是只有 JavaScript 通常在典型堆栈中使用它 - 所以很容易理解哪个部分应该被哪个应用程序片段转义。

【讨论】:

【参考方案2】:

嗯.. 你说你已经尝试转义引号,但它给了问题。 这根本不会产生问题,所以试试这个:

$newstring = addslashes($oldstring);

【讨论】:

在这个问题上没有提到 php 或 PHP 标签,你为什么会这么建议? @DondiMichaelStroma - 这是我的错……我在发帖后改变了我的问题【参考方案3】:

无需使用 Unicode 转义序列。只需用双引号将您的字符串括起来,并在字符串中的任何双引号之前加上一个反斜杠。

var x = "\"[acronym='Laugh Out Loud']lol[/acronym]\"";

【讨论】:

以上是关于引号内的引号太多——怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

get参数存在+号 双引号、多引号问题

vb中引号和双引号的使用

javascript中,双引号里套单引号,那单引号里套啥

怎样才能把单引号双引号这些特殊字符存到数据库里

SQL2000.特殊insert.要插入包含单引号与逗号的值.请高手解答!

PHP中的双引号和单引号的应用