我一直在寻找能够拥有以下内容的解决方案:
<a href="http://mylink.com" title="what's the big "DEAL" about "double quotes" & 'single' ones">a</a>
所以工具提示显示为:“双引号”和“双引号”的重大“交易”是什么? '单一'
因此用户在对话框中输入文本,我使用js解析文本,将其放入wysiwyg(tinymce)然后发送到db。
这是我尝试过的:
encodeURIComponent给了我: 什么%第二十条%20big%20%22DEAL%22%20about%20%22double%20quotes%22%20%26%20'single'%20ones
这并没有解决它,因为当我从mysql中取出数据并将其转储回页面时我又回到了原始版本,因为我在整个文本上使用了url decode(这是我无法改变的)。
尝试使用正则表达式转义引号:
title.replace(/'/g, "\\'");
title.replace(/"/g, '\\"');
这适用于“单个”引号但不是双重
我得到的是title =“什么是大的”(请注意我在php中使用准备好的语句将其插入到数据库中)
我研究了在js中转义字符串和某些字符或对它们进行编码,例如“变成”,但我得到的东西都需要你构建自己的函数。是这样的吗?
我的问题是:
我错过了什么吗?有更优雅的解决方案吗?你会怎么推荐我这样做?这个过程应该在哪里完成?
我已经看到了这个(How to escape double quotes in title attribute),但这并没有解释如何创建一个强大的解决方案来处理不断变化的用户内容(和标题属性)。
谢谢大家。