我在字符串中有一个列表,如下所示(来自带有<textarea>
的{{1}}元素):
id=list
JavaScript的:
q1
q2
q3
q4
我希望var TA = document.getElementById("list").value;
lines = TA.split("\r\n");
变量的值为lines
,
但结果是q1,q2,q3,q4
(注意空项)
我想避免结果数组中的空字符串 - 我该怎么做?
答案 0 :(得分:6)
尝试这样的事情,这也应该照顾其他格式的新行(例如,只有\n
):
var lines = TA.split(/[\r\n]+/);
或者,要删除代币之前/之后的空行和空格(此代码只会匹配\r\n
格式,但您可以使用[\r\n]
代替):
var lines = TA.split(/\s*\r\n\s*/);
或者,您可以匹配行而不是拆分换行符:
var lines = TA.match(/.+/g);
.
与新行不匹配,因此.+
实际上匹配整行,并跳过空行。这也会在数组的开头或结尾跳过空标记(如\n\n a \n b
中所示),而split
仍会创建空元素。
答案 1 :(得分:2)
分割后,您可以从数组中删除空元素。参见
答案 2 :(得分:1)
在拆分
之前将多个\ r \ n替换为1TA.replace(/(\r\n)+/g, "\r\n").split("\r\n")
答案 3 :(得分:0)
使用var lines = TA.split(/[\r\n]{1,}/g);