Параграфы в JavaScript

Знаете ли вы, есть ли простой способ подсчета абзацев в текстовой области, используя только javascript?

Спасибо,

4 ответа

Решение

Попробуй это:

document.getElementById('textarea_id').value.replace(/\n$/gm, '').split(/\n/).length;

Это будет игнорировать пустые строки (см. Ответ @Sean Vieira)

var my_data = document.getElementById("txt_area_in_question").value;
alert("The total paragraphs in the text area are: "+ 
                            my_data.split("\n\n").length)​;​​​

Теперь, это не учитывает несколько новых строк без текста... так:

Some text

Some more text





Some more text

вернусь 5 скорее, чем 3

Решение состоит в том, чтобы убрать все пробелы и вернуть то, что осталось:

var my_data = document.getElementById("txt_area_in_question").value;
my_data = my_data.split("\n\n");
var g = my_data.length;
var i = 0;
var strip_whitespace = /\s+/gi;
while (g >=0) {
    g--;
    var tmp = my_data[g];
    tmp = tmp ? tmp .replace(strip_whitespace,"") : tmp;
    if( tmp && tmp.length > 1 ) {
        i++;
    }
}
alert("The total paragraphs in the text area are: "+i)​;​​​​ //Will properly alert 3

Смотрите: http://jsfiddle.net/UBWpJ/

Вы можете улучшить ответ Шона Виеры, разделившись на (\n *\n)/g вместо просто \n\n тогда у вас нет проблем с пробелами между абзацами

      const countParagraphs = (text) =>{
return text.split(/\n\s*\n/).filter(Boolean).length;

}

Эта функция эффективно подсчитывает абзацы в тексте, разделяя текст на основе наличия пустых строк или отступов, а затем отфильтровывая все пустые абзацы перед возвратом счетчика.

Другие вопросы по тегам