Javascript заменяет согласованную группу
Я пытаюсь создать текстовый форматировщик, который добавит теги p и br к тексту на основе разрывов строк. В настоящее время у меня есть это:
s.replace(/\n\n/g, "\n</p><p>\n");
Что прекрасно работает для создания концов абзаца и начала. Однако попытки найти экземпляры
работают не так хорошо. Попытка выполнить соответствующую замену группы не работает, поскольку она игнорирует скобки и заменяет все регулярное выражение:
s.replace(/\w(\n)\w/g, "<br />\n");
Я попытался удалить параметр g (все еще заменял весь матч, но только на первое совпадение). Есть ли другой способ сделать это?
Спасибо!
Ответы
Ответ 1
Вы можете захватить части, которые вы не хотите заменять, и включить их в заменяющую строку с помощью $
, за которой следует номер группы:
s.replace(/(\w)\n(\w)/g, "$1<br />\n$2");
См. этот раздел в документах MDN для получения дополнительной информации о ссылках на части входной строки в вашей заменяющей строке.
Ответ 2
Поймать окружающие символы:
s.replace(/(\w)(\n\w)/g, "$1<br />$2");