Javascript 从split()中避免换行符?

Javascript 从split()中避免换行符?,javascript,Javascript,我有一个字符串中的列表,如下所示(来自元素,带有id=list): JavaScript: var TA = document.getElementById("list").value; lines = TA.split("\r\n"); 我希望行变量具有值q1、q2、q3、q4, 但结果是q1、、q2、q3、、q4(注意空项) < P> >我想避免结果数组中的空白字符串——我怎样才能做到这一点? 尝试类似的东西,也应该注意其他格式的新行(例如,仅 \n>代码>): 或者,要删除令牌前后的空

我有一个字符串中的列表,如下所示(来自
元素,带有
id=list
):

JavaScript:

var TA = document.getElementById("list").value; 
lines = TA.split("\r\n");
我希望
变量具有值
q1、q2、q3、q4
, 但结果是
q1、、q2、q3、、q4
(注意空项)


< P> >我想避免结果数组中的空白字符串——我怎样才能做到这一点?

尝试类似的东西,也应该注意其他格式的新行(例如,仅<代码> \n>代码>):

或者,要删除令牌前后的空行和空格(此项仅与
\r\n
格式匹配,但您可以改用
[\r\n]
):


或者,您可以匹配换行,而不是拆分换行:

var lines = TA.match(/.+/g);

与新行不匹配,因此
+
实际上与整行匹配,并跳过空行。这也将跳过数组开头或结尾的空标记(如
\n\n a\n b
),而
拆分
仍会创建空元素。

拆分后可以从数组中删除空元素。看


在拆分之前,将多个\r\n替换为一个

TA.replace(/(\r\n)+/g, "\r\n").split("\r\n")

使用
var lines=TA.split(/[\r\n]{1,}/g)

请以可读的方式设置问题的格式。。。我试图解释你的意思,但失败了。@kobi:thaks对于对齐我想匹配新行,但除了那些empty@kiran-试试看,它们都能用。如果你说的是最后一个选项,那就是三个选项中最好的一个!您根本不想匹配换行符-您想匹配换行符
:)
谢谢,最后一个在mozilla中非常有效,但在IE中它不起作用,我用IE7测试了我对它所做的更改IE@Kiran-奇怪,这是非常基本的,应该。它在IE7甚至IE6中对我都有效(假设
TA.value
是一个字符串):。不管怎样,祝你好运@steefan:这不可能是所有的情况,可能有两个空行或三个空行。regexp适用于任意数量的换行(+代表一个或多个)。因此,双空行、三空行或100空行,regexp将用一个新行替换它们;arr=$.grep(arr,函数(n,i){return(n);});arr/[1,2,3,3,4,4,5,6]@kiran-注意,该函数正在从数组中删除伪值-
0
也被删除@科比:我没有注意到,我想保留0也
var lines = TA.split(/\s*\r\n\s*/);
var lines = TA.match(/.+/g);
TA.replace(/(\r\n)+/g, "\r\n").split("\r\n")