Создание крошечного помощника для авторов для добавления / удаления пустых строк в текстовом поле. Тот, который удаляет лишние строки, кажется, работает:

if(jQuery("#remove_line").prop("checked")){
        conver = conver.replace(/^\s*[\r\n]/gm,'');
    }

Но должен быть обратный, который превращает любую новую строку в двойную новую строку (независимо от того, есть ли только 1 или даже 3 новые строки в строке). Например. это:

text
text



text

text

Следует переработать в это:

text

text

text

text

Кто-нибудь может с этим помочь? Заранее спасибо!

0
Hitoris 25 Фев 2021 в 03:48

3 ответа

Лучший ответ

Вы можете сопоставить один или несколько символов новой строки [\r\n]+ и заменить двумя символами новой строки \n\n

const regex = /[\r\n]+/gm;
const str = `text
text



text

text`;

console.log(str.replace(/[\r\n]+/g, `\n\n`));
0
The fourth bird 25 Фев 2021 в 00:51

Обратное?

addEventListener('load', ()=>{
const ta = document.querySelector('textarea');
function doubleSpaceAfter(fullText, text, insensitive = true){
  const s = insensitive ? 'i' : '';
  return fullText.replace(new RegExp('('+text+')\\s+', 'g'+s), '\n\n$1\n\n');
}
ta.value = doubleSpaceAfter(ta.value, 'text here');
}); // end load
<textarea>other stuff text here is this what you want? text here text here</textarea>
0
StackSlave 25 Фев 2021 в 01:13

Не тестировал, но думаю, это может сработать: replace(/[\n]+?/g,'\n\n')

\ n + будет соответствовать 1 или нескольким новым строкам, знак вопроса заставит взять наименьшее возможное количество (это остановит соответствующий блок на первом символе не новой строки)

0
Scurra Magna 25 Фев 2021 в 00:59