我有以下的 Ruby 代码。我想将这段代码转换成 JavaScript。请问在 JavaScript 中等价的代码是什么?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
我有以下的 Ruby 代码。我想将这段代码转换成 JavaScript。请问在 JavaScript 中等价的代码是什么?
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”属性是一个真正的数组,那当然会更好。
第二个版本可能使用“”来连接字符串,以便在处理非常长的字符串时控制换行。
这个JavaScript代码应该留在脚本标签内。
var html=<?php echo json_encode("
<div class=container>
<div class=area1>
xxx
</div>
<div class=area2>
".$someVar."
</div>
</div>
"); ?>
在你的输出HTML中,你会看到类似以下的内容
var html="\r\n\r\n\t\t\t<div class=container>\r\n\t\t\t\t<div class=area1>\r\n\t\t\t\t\txxx\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=area2>\r\n\t\t\t\t\t44\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\r\n\t\t";
而且,et voilà!,它可以让你的文件中的代码易读。
pD:此示例使用json_encode() PHP函数,但对于ASP、Ruby和JSP语言肯定有相应的函数等效物。
pD:然而,这种解决方案也有其局限性,其中之一是您不能在封装的代码中使用JavaScript变量。
这并不是非常优雅,但对我来说足够简洁:
var myString = "First line" + "\n";
var myString = myString + "Second line" + "\n";
var myString = myString + "Third line" + "\n";
var myString += "Second line \n";
代替,这样会更加简洁。 - ColinmyString += "Second line \n";
,而不是重复使用 var
。 - Michael Mior
function s() { return Array.prototype.join.call(arguments, '\n'); }
- Jan