我在Ruby中有以下代码。我想把这段代码转换成JavaScript。JS中的等效代码是什么?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
我在Ruby中有以下代码。我想把这段代码转换成JavaScript。JS中的等效代码是什么?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
当前回答
至少在源代码方面,这是一种相当经济的方法:
function s() {
var args = [],index;
for (index = 0; index< arguments.length; index++) {
args.push (arguments [index]);
}
return args.join ("\n");
}
console.log (s (
"This is the first line",
"and this is the second",
"finally a third"
));
function s() {return arguments.join ("\n")}
如果“arguments”属性是一个正确的数组,当然会更好。
第二个版本可能使用“”来进行连接,当您想要控制非常长的字符串中的换行符时。
其他回答
2015年更新:现在已经过了六年:大多数人使用模块加载器,主要模块系统都有加载模板的方法。它不是内联的,但最常见的多行字符串类型是模板,无论如何,模板应该被排除在JS之外。
require.js:'需要文本'。
使用require.js“text”插件,在template.html中使用多行模板
var template = require('text!template.html')
NPM/browserify:“brfs”模块
Browserify使用“brfs”模块加载文本文件。这实际上会将模板构建到捆绑的HTML中。
var fs = require("fs");
var template = fs.readFileSync(template.html', 'utf8');
容易的
ES6允许您使用反勾号在多行上指定字符串。它被称为模板文字。这样地:
var multilineString = `One line of text
second line of text
third line of text
fourth line of text`;
在NodeJS中使用backtick,Chrome、Firefox、Edge、Safari和Opera都支持它。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
如果您愿意使用转义换行符,它们可以很好地使用。它看起来像带有页面边框的文档。
我通过输出一个div,使其隐藏,并在需要时通过jQuery调用div id来解决这个问题。
e.g.
<div id="UniqueID" style="display:none;">
Strings
On
Multiple
Lines
Here
</div>
然后,当我需要获取字符串时,我只需使用以下jQuery:
$('#UniqueID').html();
它会在多行上返回我的文本。如果我打电话
alert($('#UniqueID').html());
我得到:
准确的
Ruby produce:“This\nIs\nMultiline\nString\n”-在JS下面生成完全相同的字符串
text=`此是A.多行一串`//测试console.log(JSON.stringify(文本));console.log(文本);
这是对朗尼最佳答案的改进,因为他的答案中的换行符与ruby输出中的位置不完全相同