Javascript中的多行字符串

时间:2014-04-15 03:37:52

标签: javascript google-app-engine jinja2 google-cloud-datastore

我的数据库中有一个“多行”字符串,如下所示:

This is a multiline string

我正在使用Google的“Datstore”,因此它在查看器中看起来与此类似。没有\n或类似的东西。

问题在于,当我尝试将检索到的字符串设置为Javascript变量时,出现“ILLEGAL TOKEN”错误。我是通过Jinja2设置的,所以它看起来像这样:

<script>
var multilinestring = {{body|safe}} 
</script>

我也设置了这样的其他变量,但它们都是整数或单行字符串。任何帮助都会很棒!

4 个答案:

答案 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;;