【发布时间】:2010-02-19 21:13:44
【问题描述】:
如何根据行尾分隔将 textarea 值分解为数组?使用 jQuery 对我来说很酷……
【问题讨论】:
标签: javascript arrays end-of-line
如何根据行尾分隔将 textarea 值分解为数组?使用 jQuery 对我来说很酷……
【问题讨论】:
标签: javascript arrays end-of-line
这应该可以工作(在 Firefox 和 Google Chrome 中测试):
var arrayOfLines = $('#textAreaID').val().split('\n');
【讨论】:
$('#textArea').val().split('\n'),jQuery对象没有value属性。
跨平台方式:
var area = document.getElementById("area");
var lines = area.value.replace(/\r\n/g,"\n").split("\n");
【讨论】:
var stringArray = document.getElementById('textarea').value.split('\n');
【讨论】:
我最喜欢“跨平台方式”的答案 (https://stackoverflow.com/a/32240738/34806),因为我过去一直在努力处理来自 Mac 的输入。尽管如此,我认为大多数现有答案可以从额外的步骤中受益。
具体来说,如果有些行是空的怎么办?下面将过滤掉这样的行,以便我们最终得到一个“紧凑”数组而不是“稀疏”数组(或至少,而不是一个元素不包含值的数组)
var area = document.getElementById("area");
var lines = area.value.replace(/\r\n/g,"\n").split("\n").filter(line => line);
【讨论】:
你可以试试这个功能:
function textToArray(){
var someArray = [];
var nameList = $("#txtArea").val();
$.each(nameList.split(/\n/), function (i, name) {
// empty string check
if(name != ""){
someArray.push(name);
}
});
【讨论】:
这个方法效果很好:
var textArea = document.getElementById("textAreaId");
var arrayFromTextArea = textArea.value.split(String.fromCharCode(10));
【讨论】: