Как разбить строку на каждые n символов или на ближайший предыдущий пробел - PullRequest
0 голосов
/ 16 декабря 2018

Я хочу вставить символ новой строки через каждые 15 символов, включая пробелы.

В настоящее время я использую приведенное ниже регулярное выражение, которое работает в некоторой степени, но оно занимает у меня ближайший пробел после слова, и я хочу ближайший предыдущий пробел.Есть идеи?

const split = str.replace(/([\s\S]{15}[^ ]*)/g, '$1\n');

Есть идеи у кого-нибудь?

1 Ответ

0 голосов
/ 16 декабря 2018

Вы можете использовать

s.replace(/[\s\S]{1,15}(?!\S)/g, '$&\n')

См. Демоверсию regex

Подробности

  • [\s\S]{1,15}- любые от 1 до 15 символов, как можно больше (то есть, все 15 захватываются одновременно, и затем происходит возврат к поиску ...)
  • (?!\S) - позиция, за которой сразу же не следуетпробел (таким образом, пробел или конец строки).

Обратите внимание, что нет необходимости переносить весь шаблон с (...), поскольку вы можете ссылаться на весь матч с заполнителем $& из шаблона замены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...