Регулярное выражение Javascript не может правильно найти и заменить блок кода уценкиJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Регулярное выражение Javascript не может правильно найти и заменить блок кода уценки

Сообщение Гость »


Я установил плагин mermaid для Gitbook через gitbook-plugin-mermaid-gb3, этот плагин может анализировать код через блок кода уценки разметки и переведите ее в файл svg, блок кода выглядит следующим образом:

```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` Но когда я использовал его, я обнаружил, что какой-то код не работает, после проверки я обнаружил, что это ошибка внутри плагина.

Код взят из index.js и связанного с ним кода анализа, указанного ниже:

var mermaidRegex = /^```mermaid((.*[\r\n]+)+?)?```$/im; функцияprocessMermaidBlockList(страница) { вар совпадение; while ((match = mermaidRegex.exec(page.content))) { вар rawBlock = совпадение [0]; вар mermaidContent = match[1]; page.content = page.content.replace(rawBlock, '' + mermaidContent + ''); } возвратная страница; } Регулярное выражение: /^```mermaid((.*[\r\n]+)+?)?```$/im, но оно может найти только блок кода начинается с ```mermaid, если до или после него есть пробел, это не будет работать

То, что я ожидал, показано ниже

- допустимо ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` -- допустимо, между ``` и русалкой может быть пробел ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` -- допустимо, может быть пробел до или после ``` ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, перед ``` не может быть дополнительных символов abc```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, перед ``` не может быть дополнительных символов abc ```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, после ``` не может быть дополнительных символов ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` абв Я изменил /^```mermaid((.*[\r\n]+)+?)?```$/im на /\s*`` `\s*mermaid((.*[\r\n]+)+?)?```$/gm и протестируйте его через https://regex101.com/r/CIrooL/ 1, вроде нормально, но внутри javascript не работает, не знаю почему.

// эта строка будет заблокирована с использованием обновленного регулярного выражения while ((match = mermaidRegex.exec(page.content))) { } Кто-нибудь может мне помочь, пожалуйста? Заранее спасибо!
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»