如何给变量赋一个多行字符串?

在javascript中如何给变量赋一个多行字符串?

我们经常遇到要给一个变量赋一个多行字符串的场景,通常的做法是祭出引号和转义打法,如:

方法1:

var html1 = "<html>\r\n<head>\r\n</head>\r\n<body>\r\n<a href=\"http://www.taoremai.com\">淘热卖</a>\r\n</body>\r\n</html>";

这种方法最大的问题是把很多本来不再同一行的东西写在了同一行,如果内容长乐看起来那是相当不方便。

方法2:

var html2 = "<html>\r\n"
+"<head>\r\n"
+"</head>\r\n"
+"<body>\r\n"
+"<a href=\"http://www.taoremai.com\">淘热卖</a>\r\n"
+"</body>\r\n"
"</html>";

这种方法解决了第一种方法中所说的问题,但多了很多加号和引号。

那有没与其他更好的方法呢?且看:

方法3:

var html3 = "<html>\r\n\
<head>\r\n\
</head>\r\n\
<body>\r\n\
<a href=\"http://www.taoremai.com\">淘热卖</a>\r\n\
</body>\r\n\
</html>";

请大家注意,前面几行后面多了个反斜杠,这个是javascript 本身就支持的。这种写法有些编辑器下着色可能会有问题。

下面再来看几种变态的写法,这两种方法确实方便,不但省了\r\n,连引号转义都省了。但这些毕竟属于”歪门邪道”这两个方法不推荐:

方法4:

Function.prototype.getMultiLine = function() {   
    var lines = new String(this);   
     lines = lines.substring(lines.indexOf("/*") + 3, lines.lastIndexOf("*/"));   
    return lines;   
}   
 
var html4 = function() {   
/*<html>
<head>
</head>
<body>
<a href="http://www.taoremai.com">淘热卖</a>
</body>
</html>*/
}   
 
document.write(html4.getMultiLine());

这个方法将多行文本写成函数的多行注释内,然后,通过解析字符串,将注释里的文本分离出来,这样,整个注释内容可以复制到JS代码中。这个方法只在IE里支持,Firefox下会有问题。

方法5:

var html5 = (<r><![CDATA[
<html>
<head>
</head>
<body>
<a href="http://www.taoremai.com">淘热卖</a>
</body>
</html>
]]></r>).toString();
 
alert(html5);

这个方法的原理是生成一个XML节点。因为XML可以使用CDATA来生成多行文本。然后,再将这个节点转换成字符串,就可以得到一个多行文本了。不过这个方法只在支持E4X的浏览器上有效。经过测试,Firefox3.0支持,IE7.0不支持。

在不同的编程语言中,定义一个空字符串的方式可能会有所不同。下面我将以几种常见编程语言为例,介绍如何定义一个空字符串。 ### Python 在Python中,可以使用一对双引号 (`""`) 或单引号 (`''`) 来创建一个空字符串。 ```python empty_string = "" # 或者 empty_string = '' ``` 还可以使用三重引号来定义一个多的空字符串,但这本质上仍然是一个空字符串。 ```python empty_string = """ """ ``` ### Java 在Java中,可以直接赋值字符串给String类型的变量。 ```java String emptyString = ""; ``` 也可以使用构造函数初始化为空字符串,不过直接赋值更为常用。 ```java String emptyString = new String(""); ``` ### C++ 在C++中,可以使用标准库中的`std::string` 类型,并将其初始化为空字符串。 ```cpp #include <string> using namespace std; string emptyString = ""; // 使用字面量 // 或者 string emptyString; // 默认构造函数会生成一个空串 ``` ### JavaScript JavaScript 中同样支持使用双引号或单引号来表示空字符串。 ```javascript let emptyString = ""; // 或者 let emptyString = ''; ``` 此外,在ES6之后还引入了模板字符串语法,虽然通常用于包含表达式的多行文本,但也可用来声明空字符串。 ```javascript let emptyString = ``; ``` ### Go Go语言也允许用类似的方式来定义空字符串。 ```go var emptyString string = "" // 显式指定类型并初值 // 或者 emptyString := "" // 自动推断类型 ``` 以上就是在一些主流编程语言里定义空字符串的基本方法。如果你正在使用的是一种特定的语言,请告知具体的语言名称,我可以为你提供更多针对性的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值