Показать сообщение отдельно
  #8 (permalink)  
Старый 08.06.2020, 01:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Можно захватывать с краев любое количество пробелов (если они будут), а в конце еще и символы ".,?!", то есть знаки препинания любые возможные, а в функции проверять если ли такие в найденном, если есть, значит возвращать этот знак, иначе пробел. А вначале ставить пробел если это не первое найденное (по позиции).

var str = '____         you wanted to know,___________________    giving a good advice______, and getting him to return the ___.';

str = str.replace(/\s*_+\s*[\.\?!,]?/g, (v, i) => (i ? ' ' : '') + '[space]' + ((v = v.match(/[\.\?!,]{1}/)) ? v : ' '))

console.log(str)


Можно добавить любые символы, можно убрать ненужные, я не знаю, что в этих текстах можно ожидать.
Ответить с цитированием