我想使用TWIG用PHP变量中的值填充JavaScript数组.
<script type="text/javascript">
var cont=new Array();
{% for key, post in posts %}
cont[{{ key }}] = "{{ post.content }}";
{% endfor %}
</script>
Run Code Online (Sandbox Code Playgroud)
问题是我有post
几行变量,所以上面的代码使JS命令分成几行,这被转换为几个命令,我有一个错误.
所以我认为我需要将所有"新行"替换为"\n".
我试着这样做:
cont[{{ key }}] = "{{ post.content | replace({"\n":"<br>"}) }}";
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.它仍然只停留几行......
Nic*_*k F 24
对于类似的问题(将用户数据输出到Javascript),我发现以下是必要的:
post.content|replace({"\n":' ', "\r":' '})
Run Code Online (Sandbox Code Playgroud)
即.替换\r
以及\n
空格.这是因为一些用户输入的内容(特别是对于Windows上的用户)可能包含\r
(回车)以及换行符,如果没有删除它似乎仍会破坏Javascript.
对我来说,nl2br并不适合,因为我将用户内容提供给Javascript方法(用于将用户输入的地址添加到Google Map中,以获得它的价值),所以我不想要任何换行符,HTML或除此以外.
Yan*_*bot 15
使用Twig(如果你不想要\r\n
)编写一些javascript的最好方法(和好方法)是这样的:
{{ example|e('js') }}
Run Code Online (Sandbox Code Playgroud)
<br />
当然,替换可以起作用,但是您将使用数据中的数据在javascript中遇到其他问题.使用javascript转义,它将以您期望的方式完美地编写有效的javascript.
有关转义过滤器的更多信息:
http://twig.sensiolabs.org/doc/filters/escape.html
如果您只想拆除刹车线,这是行不通的:
{{ post.content | replace({"\n":""}) }}
Run Code Online (Sandbox Code Playgroud)
'\' 是一个特殊符号,因此您需要对其进行转义。这将起作用:
{{ post.content | replace({"\\n":""}) }}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34999 次 |
最近记录: |