我试图获取textarea的值,将其拆分为不同的属性。
文本字段中的数据(这是一个示例,实际输入中有很多空格):
name lastname age fruit
john doe 22 apple
eric jonsson 23 apple
这是我现在的代码:
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"
我试图四处搜寻,但找不到答案。
致敬致敬
答案 0 :(得分:2)
您可以在第一行之后使用空格分割。
下面的代码通过以下操作将您的换行符加起来:
green apple
)
// This is your code
var textareaData = $('#textareaID').val().split('\n');
// This is the extra code you can add (split whitespaces and filter out resulting ones)
var words = textareaData
.filter(x => x.length !== 0)
.map(x => x.split(/(\s\s+)/))
.map(x => x.filter(el => el.trim()));
console.log(words)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="textareaID">
name lastname age fruit
john doe 22 green apple
eric jonsson 23 apple
</textarea>
答案 1 :(得分:0)
请尝试
class Bloc {
/// Your Bloc Stuff
}
final bloc = Bloc();
正则表达式将所有空间替换为一个空格
然后您可以照常使用split
var string = $('#textareaID').val().replace(/\s+/g,' ')
答案 2 :(得分:0)
尝试在带有正则表达式的单词之间留出一个空格:
var textData = textareadataData.replace(/\s+/g, " ");
然后用空格再次将其分割:
var textDataArray = textData.split(" ");
就在那里。 您只需要一行就可以完成,但是我只做两行就可以了。
答案 3 :(得分:0)
您可以使用以下代码:
$('#textareaID').val().split('\n').map(val => val.trim().replace(/[ ]+/g, " ").split(" "));
解释代码:
$('#textareaID').val().split('\n')
是您的代码
.map()
遍历所有行
val.trim()
删除外部空白
replace(/[ ]+/g, " ")
删除所有重复的空格
split(" ")
分割所有内容