在JavaScript中创建多行字符串

3420

我有以下的 Ruby 代码。我想将这段代码转换成 JavaScript。请问在 JavaScript 中等价的代码是什么?

text = <<"HERE"
This
Is
A
Multiline
String
HERE
43个回答

0

这是一种相对经济的方法,至少在源代码方面是如此:

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”属性是一个真正的数组,那当然会更好。

第二个版本可能使用“”来连接字符串,以便在处理非常长的字符串时控制换行。


1
这个函数是有效的:function s() { return Array.prototype.join.call(arguments, '\n'); } - Jan

-3
我找到了一个更优雅的解决方案,可能与主题无关,因为它使用了PHP,但我相信它对你们中的一些人来说会很有用和可爱*...

这个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变量。


1
我承认我已经多次这样做,以便将复杂的引用字符串放入javascript中,尽管我会预先准备它们。但是你关于不能使用javascript变量是错误的,你可以实现类似于coffee-script风格的插值,看起来像#{this.example},并使用闭包函数替换.replace正则表达式。 - Orwellophile

-14

这并不是非常优雅,但对我来说足够简洁:

var myString = "First line" + "\n";
var myString = myString + "Second line" + "\n";
var myString = myString + "Third line" + "\n";

16
你应该使用 var myString += "Second line \n"; 代替,这样会更加简洁。 - Colin
13
实际上,你应该使用 myString += "Second line \n";,而不是重复使用 var - Michael Mior
1
使用+来连接字符串。不需要为每行声明所有缓冲区,这太可怕了。 - e-info128
1
我应该纠正我的答案还是将其留在那里作为如何不做事情的好例子?如果这对学习JavaScript的人最有益,我不介意将其保留为现在的状态。一些负面评价并不会造成太大的伤害。 - BearCode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接