引号内的引号太多——怎么办?
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]\"";
【讨论】:
以上是关于引号内的引号太多——怎么办?的主要内容,如果未能解决你的问题,请参考以下文章