javascript转义字符串

时间:2016-09-12 10:11:50

标签: javascript html

我必须在模板中定义一个变量,这样我的模板渲染器就会替换它中的值。然后我必须在我的一些javascript函数中使用此变量。

变量本身就是一些html,我希望能够对它进行格式化,使其看起来像HTML,而不是一个不可读的超长单行字符串......

<script>
var myHTML = "
  <div>
    content
  </div>"
</script>

我能看到让它发挥作用的唯一方法就是做到这一点(非常难看)

<script>
var myHTML = ""
  +"<div>"
    +"content"
  +"</div>"
</script>

有友好的方法吗?

3 个答案:

答案 0 :(得分:2)

源中插入的任何新行字符都是模板文字的一部分。使用普通字符串,您必须使用以下语法才能获得multi-line strings

x$c2 = ifelse(duplicated(x$c1), 0, 1)

对于更高级的使用案例,您可以在其中一个top 5 JavaScript templating engines之上实施解决方案:

答案 1 :(得分:1)

一种常用且友好的方法是将模板字符串放在其自己的"scripts": { "start": "node ./src/server/index.js", "lint": "eslint index.js || exit 0" } 元素中,并将type属性设置为<script>,因为此元素可通过javascript访问,但未显示通过浏览器。

这允许您像往常一样编写HTML(以及模板标记),而无需转义或特殊处理换行符。

这种方法的工作演示:

text/x-something
//get the template string
var myHTML = document.getElementById("template1").innerHTML;

//check that myHTML contains the template string
console.log(myHTML);

答案 2 :(得分:0)

  1. 你只需要在字符串的每一行(除了最后一行)的末尾加上反斜杠“\”,然后按回车键进行换行。
  2. 在你的情况下:

    mysql> describe my_table;
    +----------------------------+--------------+------+-----+---------+-------+
    | Field                      | Type         | Null | Key | Default | Extra |
    +----------------------------+--------------+------+-----+---------+-------+
    | id                         | varchar(255) | NO   | PRI | NULL    |       |
    | test                       | varchar(255) | NO   | UNI | NULL    |       |
    +----------------------------+--------------+------+-----+---------+-------+