Как заменить символы до и после блока / абзаца?

Вот как я заменяю символы до и после слова:

el = el.replace(/"\b/g, '“')
el = el.replace(/\b"/g, '”')

Что, если я захочу повернуть это:

```
This is a quote
```

В это?

<quote>
This is a quote
</quote>

Нет гарантии, что строка после закрывающей последовательности не содержит текста, верно?

Daniel F 08.09.2018 12:15

ваш текст может содержать ``, верно?

abdul qayyum 08.09.2018 12:18

Если вы уверены, что их не случится непарных, используйте простой счетчик var counter = 0; str.replace(/```/g, function() { return counter++ % 2 == 0 ? '<quote>' : '</quote>'; }).

revo 08.09.2018 13:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
3
64
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

^```

, лениво - повторяйте любой символ, пока не дойдете до другого

^```

. ^ в начале гарантирует, что три обратных кавычки находятся в начале строки, а [\s\S] ниже - это способ сопоставления любой персонаж, включая разрывы строк, что . не делает по умолчанию:

function doReplace(str) {
  console.info(str);
  console.info(
    str.replace(/^```([\s\S]*?)^```/gm, '<quote>$1</quote>')
  );
}
doReplace("```\nThis is a quote\n```");
doReplace("```\nThis is a quote\nand there are some backticks in the text\nbut not ``` at the beginning of a line\n```");
Ответ принят как подходящий

Это может быть еще один способ заменить начальную и конечную тройную обратную галочку "` `" на <quote> и </quote> соответственно.

const string = "```\nThis is a quote\n```";
const replacer = {
  '```\n': '<quote>\n',
  '\n```': '\n</quote>'
}

const str = string.replace(/```\n|\n```/gm, function(matched) {
  return replacer[matched];
})

console.info(str);

Чередование будет соответствовать любому из них, это не гарантирует, что оно находится между ними. Так что, если строка будет const string = "```\nThis is a quote\n";, ее также следует заменить.

The fourth bird 08.09.2018 13:24

Другие вопросы по теме