我的数据库中有一个“多行”字符串,如下所示:
This
is
a
multiline
string
我正在使用Google的“Datstore”,因此它在查看器中看起来与此类似。没有\n
或类似的东西。
问题在于,当我尝试将检索到的字符串设置为Javascript变量时,出现“ILLEGAL TOKEN”错误。我是通过Jinja2设置的,所以它看起来像这样:
<script>
var multilinestring = {{body|safe}}
</script>
我也设置了这样的其他变量,但它们都是整数或单行字符串。任何帮助都会很棒!
答案 0 :(得分:1)
如果它是一个多行字符串,那么每行末尾必须有一个换行符(例如\ n)
您可以使用替换过滤器,看看是否可以删除换行符 e.g。
var multilinestring = {{body|safe|replace("\n", " ")}} // not tested
答案 1 :(得分:0)
您需要将它们用引号括起来。 尝试 var multilinestring =&#39;&#39; {{body | safe}}&#34;;
答案 2 :(得分:0)
你可以做的最好的事情是JSON编码字符串。
这将照顾任何新行以及其他特殊字符。
我不知道要编码的服务器端内容,但在客户端上它看起来像:
var multilinestring = JSON.parse(jsonEncodeStringHere);
答案 3 :(得分:0)
JavaScript字符串不能跨越多行而没有反斜杠。这是令牌错误
尝试:
var multilinestring =&#34; {{body | safe | replace(&#39; \ n&#39;,&#39; \&#39;)}}&#34;;