• Собрать регулярное выражение на JS
    Исполнитель определен: Danil Sirota

    Есть текст в текстовом редакторе на сайте, я хочу по клику на кнопку средствами JS "на лету" отформатировать текст под свои нужды и заменить в редакторе на уже отформатированный.

    Вот пример работающего кода, как я это делаю:

    var text = document.getElementById(defaultid).value;
    var pattern = new RegExp("","gi");
    var findCount = (text.match(pattern) || []).length;
    document.getElementById(defaultid).value= text.replace(pattern, "");

    Тут я по сути удаляю в тексте встречающиеся "".
    А теперь - что мне НУЖНО доделать, с чем я не могу самостоятельно справиться :)

    1) В тексте может встретиться такой кусок, к примеру, когда после какого-нибудь заголовка следующей строчкой идет сразу сам текст. Например:
    заголовок
    тут текст

    Мне нужно вставить дополнительную пустую строку между ними, чтобы стало так:
    заголовок

    тут текст

    Ориентируемся на и после него уже проверяем - идет ли следующая УЖЕ пустая строка. Если да, то ничего делать не надо. Если после с новой строки идет какой-то символ - тогда, соответственно, делаем перенос, т.е. добавляем разделяющую их пустую строку.

    2) В тексте могут встречаться двойные или тройные переносы строк, между ними еще может быть какой-то пробел, т.е. выглядеть это может вот так:

    идет какой-то текст.

     

    вот еще текст

    Видите - тут между строчками текста вообще три строки и в них ещё и какой-то символ (пробел в данном случае, по идее). Мне нужно это убрать и привести к нормальному виду, к такому:
    идет какой-то текст.

    вот еще текст

    Т.е. чтобы между ними была просто одна пустая строка.


    Прикреляю к заданию проверочный текстовый файл, где это встречается и который можно брать для работы в качестве примера.
    От исполнителя ожидаю доработанный кусок приведенного мной кода, а именно - корректную регулярку в нём для 1-го случая, и отдельно такой же кусок кода для 2-го случая (да-да, можно просто дублировать, не нужно в рамках одно куска всё это реализовывать, такие свои особенности :))

Наверх