【问题标题】:Is there a way to split a text on multiple line by empty lines?有没有办法用空行分割多行的文本?
【发布时间】:2021-02-01 08:42:39
【问题描述】:

如果有多行文本并且您必须根据新行拆分它,您可以这样做:

const splitedText = inpitValue.split('\n');

这适用于像下一个这样的文本,它将它分成 3 个部分。

this
is
my text

但这是一种基于空行拆分它的方法吗? 例如对于以下文本,它应该只分成两部分。

This
is 

a new 
text

【问题讨论】:

  • 尝试^$^[^\S\r\n]*$ 用于单行,或^\s*\r?\n 用于多行。
  • 你应该使用.split('\n\n');

标签: javascript arrays split newline


【解决方案1】:

let inpitValue = `This
is

a new
text`;

const splitedText = inpitValue.split("\n\n");
console.log(splitedText);

【讨论】:

    【解决方案2】:

    @aRvi 是对的

    你应该使用 .split('\n\n');

    const splitedText = inpitValue.split('\n\n');
    

    【讨论】:

      【解决方案3】:

      如果只有空格也被认为是空的,您可以从字符串的开头匹配 0+ 个空白字符,然后匹配换行符以拆分 1 个或多个“空”行。

      ^\s*\r?\n
      

      let regex = /^\s*\r?\n/gm;
      let inpitValue = `This
      is
      
      a new
      text`;
      
      const splitedText = inpitValue.split(regex);
      console.log(splitedText);

      拆分 2 个或多个换行符:

      [\r\n]{2,}
      

      【讨论】:

        猜你喜欢
        • 2012-08-20
        • 2019-10-18
        • 2017-03-29
        • 1970-01-01
        • 1970-01-01
        • 2019-11-09
        • 2011-12-22
        • 2022-01-04
        • 2021-04-02
        相关资源
        最近更新 更多