如何在javascript中使用换行符?

时间:2013-08-14 18:16:13

标签: javascript

这段代码给出错误:

var test = '1
2
3
4';

如果我想在javascript中很好地构建代码,如下所示:

var return = '
<div>
   content
</div>
';

我该怎么做?

6 个答案:

答案 0 :(得分:2)

无法跨越您所描述的线条。

如果您使用+运算符并关闭字符串,则可以执行以下操作:

var retVal = '<div>' +
                'content' +
             '</div>';

答案 1 :(得分:1)

您的代码抛出错误的原因是因为Javascript使用automatic semicolon insertion

如果你想在多行中构造一个大字符串,你最好做这样的事情 - :

var returnValue = '<div>' + 
                  'content' + 
                  '</div>';

答案 2 :(得分:1)

如果您想编写多行JavaScript,可以使用\,或者如果您想要换行,可以使用\n

对于多行来说是这样的:

var returnVal = '<div> \
                  content \
              </div>';

或者如果你想在字符串的输出中换行:

var reutrnVal = '<div> \n   content\n </div>'

或者您可以使用'+'连接:

var returnVal = '<div>' + 
'   content' + 
'</div>';

答案 3 :(得分:0)

JavaScript不允许字符串中的文字换行符。(看起来这是错误的;例如,请参阅stackErr's answer。)有两种半合理的方法:使用{{ 1}}运算符(正如其他人所建议的那样),或者将你的行放在数组中,然后在数组上调用+

join('\n')

后者效率不高,但在大多数情况下这可能无关紧要。

如果你发现你正在做很多事情(以编程方式组装许多小的HTML代码段),那么值得研究一下Mustache这样的模板库。

答案 4 :(得分:0)

如果您使用\结束一行,那么您的字符串可以在下一行继续。

var return = '\
<div>\
   content\
</div>\
';

答案 5 :(得分:0)

在JavaScript中创建多行字符串有一个很好的技巧,它不涉及转义每行的换行符,如http://tomasz.janczuk.org/2013/05/multi-line-strings-in-javascript-and.html所述。基本上,您只定义一个只包含所需多行字符串的注释的函数,在该函数上调用toString并删除注释,如下例所示:

var html = (function () {/*
  <!DOCTYPE html>
  <html>
    <body>
      <h1>Hello, world!</h1>
    </body>
  </html>
*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];