[英]javascript escape newlines in string
我必须在模板中定义一个变量,这样我的模板渲染器就会替换它中的值。 然后我必须在我的一些javascript函数中使用此变量。
变量本身就是一些html,我希望能够对它进行格式化,使其看起来像HTML,而不是一个不可读的超长单行字符串......
<script>
var myHTML = "
<div>
content
</div>"
</script>
我能看到让它发挥作用的唯一方法就是这样做(非常难看)
<script>
var myHTML = ""
+"<div>"
+"content"
+"</div>"
</script>
有友好的方式来做到这一点吗?
插入源中的任何新行字符都是模板文字的一部分。 使用普通字符串,您必须使用以下语法才能获得多行字符串 :
var myHTML = '<div>\\n content\\n</div>'; console.log(myHTML);
对于更高级的用例,您可以在这些前5个JavaScript模板引擎之一上实现您的解决方案:
一种常用且友好的方法是将模板字符串放在其自己的<script>
元素中,并将type属性设置为text/x-something
,因为此元素可以通过javascript访问,但不会被浏览器显示。
这允许您像往常一样编写HTML(以及模板标记),而无需转义或特殊处理换行符。
这种方法的工作演示:
//get the template string var myHTML = document.getElementById("template1").innerHTML; //check that myHTML contains the template string console.log(myHTML);
<script type="text/x-template" id="template1"> <div> content </div> </script>
在你的情况下:
<script> var myHTML = '\\ <div>\\ content\\ </div>\\ '; </script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.