Проанализировать текстовое поле в подстроках на основе разрывов строк в Javascript

У меня есть текстовая область, которую мне нужно проанализировать. Каждая новая линия должна быть вытащена, и на ней необходимо выполнить операцию. После выполнения операции необходимо выполнить операцию на следующей строке. Это то, что у меня есть на данный момент. Я знаю, что поиск indexOf не будет работать, потому что он ищет символ по символу.

function  convertLines()
{
trueinput = document.getElementById(8).value;  //get users input
length = trueinput.length; //getting the length of the user input
newinput=trueinput;  //I know this looks silly but I'm using all of this later
userinput=newinput;
multiplelines=false; //this is a check to see if I should use the if statement later
    for (var i = 0; i < length; i++) //loop threw each char in user input
        {
            teste=newinput.charAt(i); //gets the char at position i
            if (teste.indexOf("<br />") != -1) //checks if the char is the same
                {
//line break is found parse it out and run operation on it
                    userinput = newinput.substring(0,i+1);
                    submitinput(userinput); 
                    newinput=newinput.substring(i+1);
                    multiplelines=true;
                }   
        }
    if (multiplelines==false)
        submitinput(userinput);
}

Таким образом, по большей части он принимает userinput. Если он имеет несколько строк, он будет запускать каждую строку и отдельно и запускает submitinput. Если вы, ребята, можете мне помочь, я буду вечно благодарен. Если у вас есть какие-либо вопросы, пожалуйста, спросите

Ответ 1

Разрывы строк в value текстовой области представлены символами прерывания строки (\r\n в большинстве браузеров, \n в IE и Opera), а не элементом HTML <br>, поэтому вы можете получить индивидуальный линии, нормализуя разрыв строки до \n, а затем вызывая метод split() для значения textarea. Вот функция утилиты, которая вызывает функцию для каждой строки значения textarea:

function actOnEachLine(textarea, func) {
    var lines = textarea.value.replace(/\r\n/g, "\n").split("\n");
    var newLines, i;

    // Use the map() method of Array where available 
    if (typeof lines.map != "undefined") {
        newLines = lines.map(func);
    } else {
        newLines = [];
        i = lines.length;
        while (i--) {
            newLines[i] = func(lines[i]);
        }
    }
    textarea.value = newLines.join("\r\n");
}

var textarea = document.getElementById("your_textarea");
actOnEachLine(textarea, function(line) {
    return "[START]" + line + "[END]";
});

Ответ 2

Если пользователь использует клавишу ввода для перехода к следующей строке в текстовой области, которую вы можете записать,

var textAreaString = textarea.value;
textAreaString = textAreaString.replace(/\n\r/g,"<br />");
textAreaString = textAreaString.replace(/\n/g,"<br />");

textarea.value = textAreaString;