4

我正在尝试将一些文本拆分为单独的行,同时为 JS 语法荧光笔保留空格:

var text = '\n\n\ntest\n\ntext\n\n';

当我使用.split('\n')时,我的数组中有一堆空白元素:

> text.split('\n');
["", "", "", "test", "", "text", "", ""]

目前,我.strip()在拆分之前的文本,但这看起来很乱:

> text.replace(/^\s+|\s+$/g, '').split('\n');
["test", "", "text"]

有没有办法在使用时忽略尾随和前导换行符.split()?我尝试编写一个正则表达式,但效果并不好。

4

3 回答 3

2
var text = '\n\n\ntest\n\ntext\n\n lorem ipsum';
var arr = text.match(/[ \w]+/g);

console.log(arr); //=> ["test", "text", " lorem ipsum"]
于 2012-12-25T22:23:29.260 回答
0

您可以使用split(/\n+/)尽可能多的换行符然后拆分。

于 2012-12-25T22:23:29.637 回答
0

虽然我无法完全理解您的逻辑,但也许以下内容可以帮助您使用以下方法进行解析split

var text = "\n\n\ntest\n\ntext\n\n",
    parsed = ("\n" + text + "\n").split(/^\n+|\n+$|\n/).slice(1, -1);

console.log(parsed);   // ["test", "", "text"]
于 2012-12-25T23:15:29.520 回答