如何将Python中的字符串变量转换为JavaScript字面量数组?
我尝试把用逗号分隔的Python字符串数据转换成JavaScript数组变量,但这个过程似乎没有成功。
这是我现在的代码:
var tagstring = {{ tag_data }};
var availableTags = new Array();
var availableTags = tagstring.split(",");
我希望这个数组看起来像这样:
var availableTags = ["Google App Engine","jQuery"];
有没有什么好主意?
编辑:
这些是有效的代码,感谢StackOverflow社区的帮助 :)
var tagstring = "{{ tag_data }}";
var availableTags = new Array();
var availableTags = tagstring.split(",");
基本上,尽管Python变量是一个字符串,但在JavaScript中仍然需要把它指定为字符串变量。
3 个回答
1
正确的做法是不要使用任何字符串函数,无论是在Python还是JavaScript中,而是使用一个JSON编码器:
var availableTags = {{ json.dumps(elem.strip() for elem in tag_data.split(',')) }}
当然,如果你在Python中有一个列表而不是字符串,那就更好了……
1
这段代码
var tagstring = "{{ tag_data }}";
var availableTags = tagstring.split(",");
会产生什么结果呢?
顺便提一下,这段代码还可以进一步简化成一行代码。
var availableTags = "{{ tag_data }}".split(",");
3
假设这是在Django的模板中,那么这样写应该没问题:
var tagstring = "{{ tag_data|escapejs }}";
我在tag_data
周围加了引号("
),因为如果不加的话,字符串里的文字就会直接插入到JavaScript中;你其实是想构建一个包含这个值的JavaScript字符串。
我还用了escapejs
标签,这样可以避免出现嵌入的反斜杠等问题。