Django.Jquery.用引号转义字符串错误
Django. Jquery. escaping string with quotes error
在小型论坛中,任何用户都可以保存帖子。有时,这些帖子包括用引号(" ")包围的单词。当我尝试用javascript处理这些字符串时,这会给我一个错误。
我写了一些jquery代码,使用django变量,像这样:
new_text = "{{text|safe}}";
$("#text_p").text(new_text);
如果我把它标记为"安全",那么javascript会给我一个语法错误:
the text "(error here)word between quotes" the user posted
这是合乎逻辑的,因为javascript理解这样的引号:
new_text = "this is the text "word between quotes" the user posted"
所以,如果我不把它标记为"safe"并让django转义文本,它不会给我一个错误,但是文本看起来是这样的:
the text "word between quotes" the user posted
我不知道该怎么做,我想这可能不是简单的原因,如果我使用单引号来声明javascript变量,当用户发布带有单引号的文本时,我也会遇到同样的问题。如果我使用正则表达式替换双引号,而不将文本标记为"text|safe",则其他标记将被转义,文本将充满"
我有一个想法,可能工作,但是丑陋的,可能不是最好的选择:在<p class = "hidden">
标记中包含文本,然后使用jquery调用它。
问题是,我怎么解这个?有更好的方法吗?提前感谢您的帮助。
编辑:我创建了一个Runnable来更好地解释它
使用escapejs
过滤器。例子:
{{ string|escapejs }}
好的,我找到了一个部分的解决方案,希望它能帮助到将来的人。这不是一个优雅的解决方案,所以,如果有人有更好的选择,我们将非常欢迎。
我将带有"引号"的文本包含在html隐藏标签中。
python-django:
text_with_quotes = 'this is a text and a word between "quotes"'
html:
<p id = "new_text" class = "hidden"> {{text_with_quotes|safe}}</p>
js:
new_text = $("#new_text").text();
$("#text_p").text(new_text);
它的工作原理。但是使用javascript和/或python可能是更好的选择。
相关文章:
- 在JavaScript中输出转义字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 需要使用Java编码/转义HTML字符串,并在JavaScript中解码HTML字符串
- HTML 中未转义的字符串
- 带有Ajax请求的Javascript JSON.parse函数n〃;新行转义字符
- 带有转义字符的Javascript子字符串
- 如何从 JSON 字符串中删除转义字符
- 将带有转义字符和 ASCII 值的字符串转换为十六进制
- JavaScript - 如何使用转义字符构建字符串
- Javascript:转义 RegExp 字符串中的字符问题
- 正则表达式用于解析带有转义字符的字符串
- AngularJS中$interpolate内字符串的转义字符是什么
- 从占转义字符的字符数组创建字符串
- HTML页面中字符串中的转义字符
- 如何从PHP字符串中删除所有换行符和转义字符?
- 在Javascript中使用regex或indexOf更改字符串中的特定字符(转义字符)
- 在两个页面之间传递带有html特殊字符的转义查询字符串
- 带有转义字符的查询字符串
- 在 ajax 调用之前转义 JSON 字符串中的字符
- 为什么在字符串中使用引号的javascript转义字符需要'而不是'