• 在 JavaScript 中如何创建多行字符串(JavaScript Multiline String)


     

    在 JavaScript 中如何创建多行字符串(JavaScript Multiline String)

    最基本的做法是:
    js 代码
     
    1. var str = "111\n222\n333";  

    但是这样不好排版。JavaScript 本身支持“\”的断句方式,于是可以这样写:
    js 代码
     
    1. var str = "111\n\ 
    2. 222\n\ 
    3. 333";  

    但是还是不爽,平白无故加上了一个反斜杠。有人提出利用 XML 结构来实现,但是具有语法高亮的编辑器通常会被这种写法弄糊涂。

    高人无处不在,有人竟然利用注释。个人觉得这是最方便的了。我将其改了一下:
    js 代码
     
    1. Function.prototype.getMultiLine = function() {  
    2.     var lines = new String(this);  
    3.     lines = lines.substring(lines.indexOf("/*") + 3, lines.lastIndexOf("*/"));  
    4.     return lines;  
    5. }  
    6.   
    7. var ffff = function() {  
    8.     /* 
    9.     张三去倒水<br/> 
    10.     <strong>天哪!</strong> 
    11.     */  
    12. }  
    13.   
    14. document.write(ffff.getMultiLine());  

    这样虽然多写了一点,但是能够保持多行文本的原样,值得。
     

    在Javascript中给变量赋多行字符串的方法

        今天写JS的时候,遇到一个需求,我需要将一个文本文件的内容作为一个字符串赋值给一个变量,这个文本文件是多行的。首先,我想到了,将文本文件中的所有换行符替换成\n,将所有双引号替换成\",这样就可以将这个多行文本转换成单行文本了。不过,如果JS有类似于PHP的字符串定界符的话,就更好了。于是,在网上搜索了一下,找到了两个方法


    我的文本文件内容:
    Line1
    Line2Line2
    Line3


    方法一(支持Firefox)

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

    代码如下:

    var str = (<r><![CDATA[
    Line1
    Line2Line2
    Line3
    ]]
    ></r>).toString();

    alert(str);


    方法二(支持IE)

         这个方法相当有创意,是网络上某个高人的杰作。
         方法的原理是将多行文本写在一个函数体的多行注释内,然后,通过字符串解析函数,将多行文本分离出来,这样,整个文件内容也可以原封不动的复制到JS代码中。不过这个方法只在IE里支持,Firefox会将注释代码从函数体中移除。

    Function.prototype.getMultiline = function() 

        
    var lines = new String(this);  
        lines 
    = lines.substring(lines.indexOf("/*\r\n"+ 4, lines.lastIndexOf("*/"));  
        
    return lines; 
    }   
    var str = function() {  
    /*
    Line1
    Line2Line2
    Line3
    */
    }.getMultiline();

    alert(str);
  • 相关阅读:
    多线程(6)线程属性
    多线程(五) Thread和Object中线程相关方法
    面试汇总
    多线程(4)线程生命周期
    多线程(3) 多线程之线程的停止和中断
    springboot(6)redis缓存
    软件安装(总)
    redis分布式锁
    第一天
    Thinkphp5高级进阶教程
  • 原文地址:https://www.cnblogs.com/starlet/p/1742572.html
Copyright © 2020-2023  润新知