2017-02-22 1 views
-3

Как я могу получить все строки в «textarea», а затем разбивать каждый из них на массив; Для примера: у меня есть 3 строка на текстовом поле, как это:JavaScript - textarea, Разделить каждую строку строки после каждого хэша в массив.

#first name #id #mark 
#second name #id #mark 
#third name #id #mark 

поэтому мне нужно разделить текст линии после каждого хэша «#» в частный массив, а также со всеми линиями.

+1

Разделяя Ваше исследование помогает всем. Сообщите нам, что вы пробовали, и почему это не соответствовало вашим потребностям. Это показывает, что вы потратили время , чтобы попытаться помочь себе, это избавляет нас от повторения очевидных ответов, и, прежде всего, поможет вам получить более конкретный и релевантный ответ! См. Также: [ask] – j08691

+0

Вы хотите, чтобы все элементы внутри одного массива, правильно? Но что вы имеете в виду «все линии»? –

+0

Да, я имею в виду выполнение одного и того же процесса с каждой строкой. –

ответ

1

Вы можете обратиться к текстовому полю с помощью id и разделить строку на строки и элементы.

var content = document.getElementById('area').value, 
 
    result = content.split('\n').map(function (a) { 
 
     return a.split(/\s?#/).slice(1); 
 
    }); 
 
    
 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<textarea id="area">#first name #id #mark 
 
#second name #id #mark 
 
#third name #id #mark</textarea>

+0

Спасибо, вот что мне нужно :) –

1

Кажется, я был слишком медленным, но в любом случае, здесь вы идете.

var data = document.getElementById('txt').value.split('\n'), 
 
    solution = data.map(v => v.replace(/^#|\s(?=#)/g, '').split('#')); 
 

 
console.log(solution);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<textarea cols='30' rows='10' id='txt'>#first name #id #mark 
 
#second name #id #mark 
 
#third name #id #mark</textarea>

+0

Спасибо за помощь :) –

+0

@medomedo Это одна линия против трех линий решения Нины. Попробуйте изменить свой лучший ответ (: –

0

попробовать это:

var txt = $(selector).val(); 
var txtArray = txt.split('\n').map(function(line){ 
    line = line.trim(); 
    return line.split('#').map(function(itemHash){ 
     return itemHash.trim(); 
    }).filter(function(itemHash){ 
     return itemHash != "" 
    }); 
}).filter(function(line){ 
    return line != "" 
}); 

https://jsfiddle.net/idkc/e3r79wm4/

Смежные вопросы