美文网首页
JS声明多行文本方法

JS声明多行文本方法

作者: DHFE | 来源:发表于2018-03-07 21:03 被阅读11次
  1. 直接声明
var lines = "aaa\nbbb\nccc\nddd"
console.log(lines);

缺点:文本复杂起来时,使用不直观,维护困难;


  1. 分行声明
var lines = "aaa\n\
             bbb\n\
             ccc\n\
             ddd";
console.log(lines);
/*
aaa
             bbb
             ccc
             ddd
*/

缺点:有空白,每行的末尾都需要增加回车转义符\n,十分不直观不方便。


  1. 数组定义,join方法连接
var lines = ["aaa","bbb","ccc","ddd"].join("\n");
console.log(lines);
/*
aaa
bbb
ccc
ddd
*/

缺点:比较取巧,可以分开定义每行,回车转义符只用写一次,相比之前的方法方便许多,但是遇到每行中需要存在引号时还是需要转义。


  1. 使用函数
Function.prototype.getMultilines = function () {
    var lines = new String(this);
    lines = lines.substring(lines.indexOf("/*") + 3,lines.lastIndexOf("*/"));
    return lines;
}
var lines = function () {
/*
<div class="test"> 
    <h1>2018年3月7日 20:45:28</h1>
</div>  
*/
};

console.log(lines.getMultilines());
document.write(lines.getMultilines());

/*
<div class="test"> 
    <h1>2018年3月7日 20:45:28</h1>
</div> 
*/



// --------------------------------------------------------------

var f = function () {/*
<div class="test"> 
    <h1>2018年3月7日 20:45:28</h1>
</div> 
*/};

var multiline = function (fn) {
    var str = fn.toString().split('\n');
    // console.log(str);
    return str.slice(1, str.length - 1 ).join('\n');
}

var test = multiline(f)
console.log(test);
document.write(test);

/*
<div class="test"> 
    <h1>2018年3月7日 20:45:28</h1>
</div> 
*/

代码量多了一些,但使用非常方便,且直观,推荐文本复杂时使用。

相关文章

网友评论

      本文标题:JS声明多行文本方法

      本文链接:https://www.haomeiwen.com/subject/ogsxfftx.html