如何在javascript中拆分换行符?

如何在javascript中拆分换行符?,javascript,regex,split,Javascript,Regex,Split,我有一个关于javascript的问题 我从数据库中检索到如下内容: lots of texts in line 1 lots of texts in line 2 lots of texts in line 3 lots of texts in line 4 contents.replace(/(\r\n)|\r|\n/g, '\n').split(/\n+/g) 我想创建一个数组并基于特征线创建元素 我有点像 var contents = obj.string //obj.strin

我有一个关于javascript的问题

我从数据库中检索到如下内容:

lots of texts in line 1 
lots of texts in line 2
lots of texts in line 3 
lots of texts in line 4
contents.replace(/(\r\n)|\r|\n/g, '\n').split(/\n+/g)
我想创建一个数组并基于特征线创建元素

我有点像

var contents = obj.string //obj.string contains the contents above.
contents = contents.split(/(\r\n|\r|\n)/g)
它创建了4个以上的元素,因为有些元素只是一条“
特征线”


谁能帮我得到4个元素?非常感谢

这可能不是一个优雅的解决方案,但您可以通过将任何
\r
替换为
\n
来清理字符串,然后修剪最后一个
\n
(这将为您提供一个不需要的空数组)

见示例:

var a = "a\nb\rc\n\n\n\n",
    b = a.replace(/\r/g,"\n").replace(/[\n]+/g,"\n").replace(/\n$/,"").split("\n");
变量a的输出

"a
 bc



 "
变量b的输出:

["a", "b", "c"]
清理过程如下:

  • 获取字符串并将所有
    \r
    替换为
    \n
    ,这将在某些位置留下多个
    \n
  • 将多个
    \n
    实例清理到Singular
  • 删除任何尾随的
    \n
    ,以避免末尾出现空数组元素
  • \n

  • 这可能不是一个优雅的解决方案,但您可以通过将任何
    \r
    替换为
    \n
    ,然后修剪最后一个
    \n
    (这将为您提供一个不需要的空数组)来清理字符串

    见示例:

    var a = "a\nb\rc\n\n\n\n",
        b = a.replace(/\r/g,"\n").replace(/[\n]+/g,"\n").replace(/\n$/,"").split("\n");
    
    变量a的输出

    "a
     bc
    
    
    
     "
    
    变量b的输出:

    ["a", "b", "c"]
    
    清理过程如下:

  • 获取字符串并将所有
    \r
    替换为
    \n
    ,这将在某些位置留下多个
    \n
  • 将多个
    \n
    实例清理到Singular
  • 删除任何尾随的
    \n
    ,以避免末尾出现空数组元素
  • \n

  • 你的问题隐含着两个假设。首先,我假设换行符可以由
    '\r\n'
    '\n'
    '\r'
    指示。其次,您希望忽略结果中的空行

    我认为您可以通过首先将所有换行符转换为单个形式,然后在忽略空行的情况下进行拆分来实现这两种方法,如下所示:

    lots of texts in line 1 
    lots of texts in line 2
    lots of texts in line 3 
    lots of texts in line 4
    
    contents.replace(/(\r\n)|\r|\n/g, '\n').split(/\n+/g)
    

    replace命令应将所有不同的换行符转换为
    '\n'
    ,而split将在看到一个或多个连续的
    '\n'
    s的位置拆分该行。

    问题中隐含了两个假设。首先,我假设换行符可以由
    '\r\n'
    '\n'
    '\r'
    指示。其次,您希望忽略结果中的空行

    我认为您可以通过首先将所有换行符转换为单个形式,然后在忽略空行的情况下进行拆分来实现这两种方法,如下所示:

    lots of texts in line 1 
    lots of texts in line 2
    lots of texts in line 3 
    lots of texts in line 4
    
    contents.replace(/(\r\n)|\r|\n/g, '\n').split(/\n+/g)
    

    replace命令应将所有不同的换行符转换为
    '\n'
    ,而split将在看到一个或多个连续的
    '\n'
    s的位置拆分该行。

    可能重复的内容,您可以循环元素并移除空元素(修剪后),那么您应该只剩下4个元素了。@bjb568不确定这是链接问题的副本吗?可能是副本无论如何,您可以通过元素循环并删除空元素(修剪后),那么您应该只剩下4个元素了。@bjb568不确定这是链接问题的副本吗?