【问题标题】:How can I trim a string which has multiple lines in Javascript如何修剪在Javascript中有多行的字符串
【发布时间】:2020-11-20 12:16:06
【问题描述】:

我有一个包含多行的字符串,每行之间有一个换行符。 为此,我首先修剪多余的换行符,然后拆分字符串。 使用的代码是 -

function trimString(a){
    var i = a.length;
    var x;
    for (var j = 0; j < i; j++) {
        x = a[j].replace(/^\s*\n/gm,"");
        a[j] = x;
    }
}

function splitLogs(a,s1,s2,s3,s4,s5){
    var i = a.length;
    var x =[];
    for (var j = 0; j < i; j++) {
        x = a[j].split("\n");
        s1.push(x[0]);
        s2.push(x[1]);
        s3.push(x[2]);
        s4.push(x[3]);
        s5.push(x[4]);
        
    }
}

上面的代码运行良好。

但问题是当我在多行字符串中有一个空值/空白值时。每当一行中出现空值时,字符串就会被两个换行符分隔

String1 示例:

line1:Processor
    
line2:  
line3:xyz
    
line4:10
    
line5:user
    
line6:zzz

 

String2 示例:

line1:xy
    
line2:xz
    
line3:qw
    
line4:10
    
line5:df

line6:gg

对于上述情况,如果我使用 trimString() 函数,获得的新字符串是 -

line1:Processor
line3:xyz
line4:10 
line5:user
line6:zzz

这不符合我保留 line2 的空值的目的,并导致将 line3 值与 line2 数组值混合。

有什么方法可以拆分字符串并将其推送到我必须转储到数据库的各个变量。

【问题讨论】:

    标签: javascript arrays string


    【解决方案1】:

    1 - 分成几行

    2 - 修剪字符串

    3 - 删除空行

    4 - 用\n 分隔符加入它。

    const resultString = targetString
      .split('\n')
      .map(line => line.trim())
      .filter(line => Boolean(line))
      .join('\n')
    

    你的函数应该是这样的:

    function trimString(a){
      return a.split('\n')
              .map(line => line.trim())
              .filter(line => Boolean(line))
              .join('\n')
    }
    

    【讨论】:

    猜你喜欢
    • 2012-12-21
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 2017-10-16
    相关资源
    最近更新 更多