js中多行字符串拼接

前言

我们会经常遇到这样的场景,需要拼接多行字符串,在字符串中动态插入一些数据以达到业务的需求。但是js中并没有标准的多行编辑的函数,于是聪明的程序员们便脑洞大开,书写出许多有趣的方法。


1

2

3

4

5


<div class="links">

<a href="http://qianlongo.github.io/">谦龙的博客</a>

<a href="http://aximario.github.io/">阿希的博客</a>

<a href="http://lingyu.wang/">天镶的博客</a>

</div>

对于上图的dom结构如果要在js中拼接,你会用什么组织方式呢?

1. 常规方式


1

var str = ‘<div class="links"><a href="http://qianlongo.github.io/">谦龙的博客</a><a href="http://aximario.github.io/">阿希的博客</a><a href="http://lingyu.wang/">天镶的博客</a></div>‘

看到上面那一坨的代码,不知道您的心情是怎样的,反正我是完全没有心情看下去了,可读性太差了,于是乎为了写出可读性强的代码我们开始了下面的征程

2. 字符串相加形式


1

2

3

4

5


var str = ‘<div class="links">‘ +

‘<a href="http://qianlongo.github.io/">谦龙的博客</a>‘ +

‘<a href="http://aximario.github.io/">阿希的博客</a>‘ +

‘<a href="http://lingyu.wang/">天镶的博客</a>‘ +

‘</div>‘

这种也许是我们用的很多的一种方式,简单灵活,可以直观地看出dom结构,但是写出来的代码犹如满天繁星一般,有些头晕目眩

3. 反斜杠


1

2

3

4

5


‘<div class="links">\

<a href="http://qianlongo.github.io/">谦龙的博客</a>\

<a href="http://aximario.github.io/">阿希的博客</a>\

<a href="http://lingyu.wang/">天镶的博客</a>\

</div>‘

4. 数组切割方式


1

[ ‘<div class="links">‘,‘<a href="http://qianlongo.github.io/">谦龙的博客</a>‘,‘<a href="http://aximario.github.io/">阿希的博客</a>‘,‘<a href="http://lingyu.wang/">天镶的博客</a>‘,‘</div>‘].join(‘\n‘);

5. es6 方式

es6的到来给我们带来许多新的特性,其中有一部分是关于模板字符串的,专门可以用来解决多行编辑的问题


1

2

3

4

5


`<div class="links">

<a href="http://qianlongo.github.io/">谦龙的博客</a>

<a href="http://aximario.github.io/">阿希的博客</a>

<a href="http://lingyu.wang/">天镶的博客</a>

</div>`

注意第一个和最后一个” ` “符号,整段代码干净简洁,太舒服了有木有

6. 黑魔法 function.toString()


1

2

3

4

5

6

7

8

9

10

11


function toSting(fn){

return fn.toString().split(‘\n‘).slice(1,-1).join(‘\n‘) + ‘\n‘;

}

document.body.innerHTML = toString(function(){/*

<div class="links">

<a href="http://qianlongo.github.io/">谦龙的博客</a>

<a href="http://aximario.github.io/">阿希的博客</a>

<a href="http://lingyu.wang/">天镶的博客</a>

</div>

*/})

总结

方法会有很多,适合自己的,适合解决实际问题的方法才是最好的方法。

时间: 2024-10-15 10:44:01

js中多行字符串拼接的相关文章

js中定义用字符串拼接起来的变量名的变量

今天在写js的时候碰到了难题,我又一个页面需要生成很多的变量.但是变量的名称是根据参数的不同而区分的. 例如可能需要生成 date_1,date_2,datet_3... (后面的数字是根据参数来的). 所以我的函数名 应该由 var name = "test_"+num;   生成函数名  但这问题就来了.1     初始化变量时 等号左边是不允许是表达式的. 所以 var "test_"+num = 100; 这中肯定是错误的.后来问了大哥后才知道.可以使用  

[转]JS中对象与字符串的互相转换

原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON.parse方法在遇到不可解析的字符串时,会抛出SyntaxError异常. 即:JSON.parse(text, reviver),This method parses a JSON text t

Js中常用的字符串,数组,函数扩展

由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展,一来可以练练手,二来也锻炼下自己的代码能力.由于代码里面的注释自认为已经非常详细,所以就直接贴代码了. 1. 字符串扩展: ;(function() { var method, stringExtends = { /** * 删除字符串开始和结尾的空白 * @returns {string} */ stri

项目--js中替换目标字符串指定的所有字符

js提供的字符串替换函数replace可以将字符串中符合条件的字符串替换成目标字符串.但是一般使用字符串进行查找替换只能替换第一个符合条件的结果.如var str = 大家都是男人吗,难道不是吗!;str = str.replace('吗', '嘛');alert(str);var str = 大家都是男人吗,难道不是吗!;str = str.replace('吗', '嘛');alert(str);上述代码中只有第一个吗被替换,输出结果是大家都是男人嘛,难道不是吗! ,嘿嘿如果想全部替换字符串

js定义多行字符串

js本身没有提供类似的定义方式,但是可以通过多行注释(/* */),已经借助function的方式来达到多行字符的定义,例如代码: var jstr = function() { var fun = function() { /*line1 line2 line3 line4*/ } var lines = new String(fun); return lines.substring(lines.indexOf("/*") + 3, lines.lastIndexOf("*

JS中如何将字符串转化成日期 日期格式化方法

<!--     /**     * 对Date的扩展,将 Date 转化为指定格式的String     * 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) 可以用 1-2 个占位符     * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)     * eg:     * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-0

js中格式化时间字符串

.net 程序员肯定有遇到过,将一个对象json序列化之后Date 字段 就会转化成 '/Date(1370770323740)/' 这种格式的数据,下面介绍一种在js中,关于时间格式的转换. <script> function formatDate(date, format) { if (!date) return; if (!format) format = "yyyy-MM-dd"; switch(typeof date) { case "string&qu

JS中三种字符串连接方式及其性能比较

工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法  用连接符“+”把要连接的字符串连起来: str="a"; str+="b"; 毫无疑问,这种方法是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便. 第二种方法  以数组作为中介用 join 连接字符串: var arr=new Array(); arr.push(a); arr.push

js中把JSON字符串转换成JSON对象最好的方法

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明. 这里首先