Textarea到过滤数组Javascript
我试图获取textarea的值,将其拆分为不同的属性 文本字段中的数据(这是一个示例,实际输入中有更多的空格): 这是我现在的代码:Textarea到过滤数组Javascript,javascript,arrays,Javascript,Arrays,我试图获取textarea的值,将其拆分为不同的属性 文本字段中的数据(这是一个示例,实际输入中有更多的空格): 这是我现在的代码: var textareadataData = $('#textareaID').val().split('\n'); 结果: " name lastname age fruit" " john doe 22
var textareadataData = $('#textareaID').val().split('\n');
结果:
" name lastname age fruit"
" john doe 22 apple"
"eric jonsson 23 apple"
我希望结果是:
"name","lastname","age","fruit"
"john","doe","22";"apple"
"eric", "jonsson","23","apple"
我试着四处寻找,但没有找到答案
致以最诚挚的问候,请再试一次
var string = $('#textareaID').val().replace(/\s+/g,' ')
正则表达式将用一个空格替换所有空格
然后你可以像往常一样使用split
string.split(" ");
您可以在新行的空格之后使用空格分隔 下面的代码将新行拆分与以下操作相加:
green apple
)//这是您的代码
var textareaData=$('#textareaID').val().split('\n');
//这是您可以添加的额外代码(拆分空白并过滤掉产生的空白)
var words=textareaData
.filter(x=>x.length!==0)
.map(x=>x.split(/(\s\s+/))
.map(x=>x.filter(el=>el.trim());
console.log(文字)
名字姓氏年龄水果
无名氏22号绿苹果
埃里克·琼森23苹果
尝试用正则表达式在单词之间留出一个空格:
var textData = textareadataData.replace(/\s+/g, " ");
然后用空格再次拆分:
var textDataArray = textData.split(" ");
就在这里。
您可以只在一行中完成,但我只在两行中进行了说明。您可以使用以下代码:
$('#textareaID').val().split('\n').map(val => val.trim().replace(/[ ]+/g, " ").split(" "));
要解释代码:
$('#textareaID').val().split('\n')
是您的代码
.map()
迭代所有行
val.trim()
删除外部空白
replace(/[]+/g,”)
删除所有重复的空白
split(“”
拆分所有内容Hmm,它几乎可以正常工作。它也将空格计算为属性。你知道如何摆脱它吗?添加了一个工作示例,其中包含你提供的额外反馈。在我的数组中,我得到了一些数组,其中有空格,但被过滤为自己的数组示例“绿苹果”,结果是“绿”、“苹果”,但我想要“绿苹果”。。。你能在这里帮忙吗?(除此错误外,它的工作原理类似于一个符咒)。然后,可以通过将\s+
转换为\s+
来修改正则表达式以匹配多个空格。添加了一个示例绿苹果
,请查看。修复了它!谢谢我收到了以下错误:$(…).val(…)不是函数对不起,我忘记了“替换函数”或者干脆.split(/\s+/)
我收到了以下错误:$(…).val(…)不是函数@Maxime发布了相同的结果,如果你写'$('.\textareaID').val()(/\s+//g',)')。你会收到这个错误,但你需要这样写:$(“#textareaID”).val().replace(/\s+/g,”).split(“”)能否提供一个演示JSFIDLE?
$('#textareaID').val().split('\n').map(val => val.trim().replace(/[ ]+/g, " ").split(" "));