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