按\ n分割时忽略尾随和引导换行符?

时间:2012-12-25 22:17:29

标签: javascript regex string split

我正在尝试将一些文本拆分为单独的行,同时为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()时有没有办法忽略尾随和引导换行?我试着写一个正则表达式,但这并没有那么顺利。

3 个答案:

答案 0 :(得分: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"]

答案 1 :(得分:0)

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

答案 2 :(得分: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"]