js убрать \n после цифр, не затрагивая само число
есть строка:
'\n\t\t\t\t14\n\t\t\t\t\n\n\n\n\nСоюз может быть «душа в душу». Для ваших отношений важно соблюдать равноправие, когда каждый из партнеров одинаково проявляет ответственность и распределяются обязательства, находить компромиссы. В негативном проявлении партнер может притягиваться с алкогольной зависимостью, не воздержанный в эмоциях, проявляющий агрессию либо партнер может излишне подстраиваться с целью угодить. Конфликты в паре могут случаться из-за грубости, алкогольной зависимости, привязанности к внешним факторам (отсутствие статуса, денег и т.д.). В вашей паре важно придерживаться «золотой середины» во всем (в эмоциях, в еде, тратах), уделять больше времени совместному времяпровождению, вместе духовно развиваться, посещать культурные места, практиковать йогу, медитации, очищение организма и др.\n\n\n\nРекомендации для создания гармоничных отношений:\n\n\n\nРазговоры «по душам»Совместное посещение культурных мероприятий (музеи, выставки, концерты, филармонии)Совместное творчествоУстраивать романтические вечера (прогулки по Набережной, катание на лодочках/катамаранах, провожать закат, ванна со свечами)Перейти на правильное питание вместе (моно вместе участвовать в марафонах по детоксу и правильному питанию)Совместные медитации\n\n\t\t\t\t'
мне нужно убрать все символы табуляции и все символы разрыва строки кроме одного после цифр вначале, как и \n в самом начале строки. табуляцию и разрывы строк вначале и конце я убрать могу с помощью:
str.replaceAll('\t', '');
str.replaceAll(/^\n+|\n+$/g, '');
но как убрать \n после и перед цифр?
я не силён в регулярках на js, да и в целом, но я пробовал так:
a.replaceAll(/(?:\d+)\n+/g, '');
это мне никак не помогло, т.к. убирает и цифры.
выход строки ожидается таким:
'14\nСоюз может быть «душа в душу». Для ваших отношений важно соблюдать равноправие, когда каждый из партнеров одинаково проявляет ответственность и распределяются обязательства, находить компромиссы. В негативном проявлении партнер может притягиваться с алкогольной зависимостью, не воздержанный в эмоциях, проявляющий агрессию либо партнер может излишне подстраиваться с целью угодить. Конфликты в паре могут случаться из-за грубости, алкогольной зависимости, привязанности к внешним факторам (отсутствие статуса, денег и т.д.). В вашей паре важно придерживаться «золотой середины» во всем (в эмоциях, в еде, тратах), уделять больше времени совместному времяпровождению, вместе духовно развиваться, посещать культурные места, практиковать йогу, медитации, очищение организма и др.\n\n\n\nРекомендации для создания гармоничных отношений:\n\n\n\nРазговоры «по душам»Совместное посещение культурных мероприятий (музеи, выставки, концерты, филармонии)Совместное творчествоУстраивать романтические вечера (прогулки по Набережной, катание на лодочках/катамаранах, провожать закат, ванна со свечами)Перейти на правильное питание вместе (моно вместе участвовать в марафонах по детоксу и правильному питанию)Совместные медитации'
учтите, что я буду перебирать множество похожих строк.
Ответы (2 шт):
Возможно подойдет такой вариант:
const result = text
.replaceAll('\t', '')
.replace(/^\n/,"")
.replace(/\n+/g,'\n')
.replace(/([0-9]+)(?:\n+)/g,"$&")
replaceAll('\t', '')убирает вообще все табуляцииreplace(/^\n/,"")убирает\nтолько в начале строкиreplace(/\n+/g,'\n')убирает повторы\nвнутри текстаreplace(/([0-9]+)(?:\n+)/g,"$&")подставляет то что найдет - число и если есть\nпосле числа
первую и вторую регулярку можно объединить, например так:
.replace(/^\n|\t/g,"") - выше они расписаны для объяснения
Результат:
14
Союз может быть «душа в душу». Для ваших отношений важно соблюдать равноправие, когда каждый из партнеров одинаково проявляет ответственность и распределяются обязательства, находить компромиссы. В негативном проявлении партнер может притягиваться с алкогольной зависимостью, не воздержанный в эмоциях, проявляющий агрессию либо партнер может излишне подстраиваться с целью угодить. Конфликты в паре могут случаться из-за грубости, алкогольной зависимости, привязанности к внешним факторам (отсутствие статуса, денег и т.д.). В вашей паре важно придерживаться «золотой середины» во всем (в эмоциях, в еде, тратах), уделять больше времени совместному времяпровождению, вместе духовно развиваться, посещать культурные места, практиковать йогу, медитации, очищение организма и др.
Рекомендации для создания гармоничных отношений:
Разговоры «по душам»Совместное посещение культурных мероприятий (музеи, выставки, концерты, филармонии)Совместное творчествоУстраивать романтические вечера (прогулки по Набережной, катание на лодочках/катамаранах, провожать закат, ванна со свечами)Перейти на правильное питание вместе (моно вместе участвовать в марафонах по детоксу и правильному питанию)Совместные медитации
let str = '\n\t\t\t\t14\n\t\t\t\t\n\n\n\n\nСоюз может быть «душа в душу». Для ваших отношений важно соблюдать равноправие, когда каждый из партнеров одинаково проявляет ответственность и распределяются обязательства, находить компромиссы. В негативном проявлении партнер может притягиваться с алкогольной зависимостью, не воздержанный в эмоциях, проявляющий агрессию либо партнер может излишне подстраиваться с целью угодить. Конфликты в паре могут случаться из-за грубости, алкогольной зависимости, привязанности к внешним факторам (отсутствие статуса, денег и т.д.). В вашей паре важно придерживаться «золотой середины» во всем (в эмоциях, в еде, тратах), уделять больше времени совместному времяпровождению, вместе духовно развиваться, посещать культурные места, практиковать йогу, медитации, очищение организма и др.\n\n\n\nРекомендации для создания гармоничных отношений:\n\n\n\nРазговоры «по душам»Совместное посещение культурных мероприятий (музеи, выставки, концерты, филармонии)Совместное творчествоУстраивать романтические вечера (прогулки по Набережной, катание на лодочках/катамаранах, провожать закат, ванна со свечами)Перейти на правильное питание вместе (моно вместе участвовать в марафонах по детоксу и правильному питанию)Совместные медитации\n\n\t\t\t\t';
let fixedStr = str.trim();
let num = fixedStr.match(/\d+/)[0];
let text = fixedStr.replace(num, '').trimStart();
let result = `${num}\n${text}`;
let expected = '14\nСоюз может быть «душа в душу». Для ваших отношений важно соблюдать равноправие, когда каждый из партнеров одинаково проявляет ответственность и распределяются обязательства, находить компромиссы. В негативном проявлении партнер может притягиваться с алкогольной зависимостью, не воздержанный в эмоциях, проявляющий агрессию либо партнер может излишне подстраиваться с целью угодить. Конфликты в паре могут случаться из-за грубости, алкогольной зависимости, привязанности к внешним факторам (отсутствие статуса, денег и т.д.). В вашей паре важно придерживаться «золотой середины» во всем (в эмоциях, в еде, тратах), уделять больше времени совместному времяпровождению, вместе духовно развиваться, посещать культурные места, практиковать йогу, медитации, очищение организма и др.\n\n\n\nРекомендации для создания гармоничных отношений:\n\n\n\nРазговоры «по душам»Совместное посещение культурных мероприятий (музеи, выставки, концерты, филармонии)Совместное творчествоУстраивать романтические вечера (прогулки по Набережной, катание на лодочках/катамаранах, провожать закат, ванна со свечами)Перейти на правильное питание вместе (моно вместе участвовать в марафонах по детоксу и правильному питанию)Совместные медитации';
console.log('Are equal?', result === expected);