繁体   English   中英

如何在javascript中拆分换行符?

[英]How to split break line in javascript?

我对我的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

我想创建一个数组,并基于折线创建元素。

我有类似的东西

var contents = obj.string //obj.string contains the contents above.
contents = contents.split(/(\r\n|\r|\n)/g)

它创建了4个以上的元素,因为某些元素只是一个“ breakline ”。

谁能帮我获得4个要素? 非常感谢!

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

参见示例:

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

var a输出:

"a
 bc



 "

var b输出:

["a", "b", "c"]

清理过程如下:

  1. 取字符串并将所有\\r替换为\\n ,这将在某些位置为您多个\\n
  2. 清除\\n多个实例为奇数
  3. 删除所有结尾的\\n ,以免最后出现一个空数组元素
  4. 拆分为\\n上的数组

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

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

contents.replace(/(\r\n)|\r|\n/g, '\n').split(/\n+/g)

replace命令应该将所有不同的换行符都转换为'\\n' ,而split会在看到1个或多个连续的'\\n'的地方对行进行分割。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM