在JavaScript中创建多行字符串

        我在Ruby中有以下代码。我想将此代码转换为JavaScript。什么是JS中的等效代码?


text = <<"HERE"

This

Is

A

Multiline

String

HERE


aluckdog
浏览 1568回答 4
4回答

互换的青春

ECMAScript 6(ES6)引入了一种新的文字,即模板文字。它们具有许多特征,可变插值等,但最重要的是,对于这个问题,它们可以是多线的。模板文字由反引号分隔:var&nbsp;html&nbsp;=&nbsp;` &nbsp;&nbsp;<div> &nbsp;&nbsp;&nbsp;&nbsp;<span>Some&nbsp;HTML&nbsp;here</span> &nbsp;&nbsp;</div> `;(注意:我不主张在字符串中使用HTML)浏览器支持是可以的,但您可以使用转换器更兼容。

一只名叫tom的猫

这种模式text = <<"HERE" This Is A Multiline String HERE在js中不可用(我记得在我很好的旧Perl时代使用它)。为了保持对复杂或长多行字符串的监督,我有时使用数组模式:var myString =&nbsp;&nbsp; &nbsp;['<div id="someId">',&nbsp; &nbsp; 'some content<br />',&nbsp; &nbsp; '<a href="#someRef">someRefTxt</a>',&nbsp; &nbsp; '</div>'&nbsp; &nbsp;].join('\n');或者匿名模式已经显示(转义换行符),这可能是代码中的一个丑陋的块:&nbsp; &nbsp; var myString =&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;'<div id="someId"> \some content<br /> \<a href="#someRef">someRefTxt</a> \</div>';这是另一个奇怪但有效的'技巧' 1:var myString = (function () {/*&nbsp; &nbsp;<div id="someId">&nbsp; &nbsp; &nbsp;some content<br />&nbsp; &nbsp; &nbsp;<a href="#someRef">someRefTxt</a>&nbsp; &nbsp; </div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];外部编辑:jsfiddleES20xx支持使用模板字符串跨多行生成字符串:let str = `This is a text&nbsp; &nbsp; with multiple lines.&nbsp; &nbsp; Escapes are interpreted,&nbsp; &nbsp; \n is a newline.`;let str = String.raw`This is a text&nbsp; &nbsp; with multiple lines.&nbsp; &nbsp; Escapes are not interpreted,&nbsp; &nbsp; \n is not a newline.`;

波斯汪

您可以在纯JavaScript中使用多行字符串。此方法基于函数的序列化,该函数被定义为依赖于实现。它在大多数浏览器中都有效(见下文),但不能保证它将来仍能使用,所以不要依赖它。使用以下功能:function&nbsp;hereDoc(f)&nbsp;{ &nbsp;&nbsp;return&nbsp;f.toString(). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replace(/^[^\/]+\/\*!?/,&nbsp;''). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replace(/\*\/[^\/]+$/,&nbsp;'');}你可以在这里 - 像这样的文件:var&nbsp;tennysonQuote&nbsp;=&nbsp;hereDoc(function()&nbsp;{/*! &nbsp;&nbsp;Theirs&nbsp;not&nbsp;to&nbsp;make&nbsp;reply, &nbsp;&nbsp;Theirs&nbsp;not&nbsp;to&nbsp;reason&nbsp;why, &nbsp;&nbsp;Theirs&nbsp;but&nbsp;to&nbsp;do&nbsp;and&nbsp;die */});该方法已在以下浏览器中成功测试过(未提及=未测试):IE 4 - 10Opera 9.50 - 12(不是9-)Safari 4 - 6(不是3-)Chrome 1 - 45Firefox 17 - 21(不是16-)Rekonq 0.7.0 - 0.8.0Konqueror 4.7.4不支持但是要小心你的缩放器。它往往会删除评论。对于YUI压缩器,/*!将保留以(与我使用的)相似的注释。我认为真正的解决方案是使用CoffeeScript。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript