JavaScript Regex для ограждения кода в Markdown - PullRequest
2 голосов
/ 01 декабря 2011

Я пытаюсь добавить поддержку в showdown.js для ограждения кода, но я все еще своего рода новичок в регулярных выражениях. Ограждение кода, если вы не знаете, выглядит так:

```javascript
alert('hello world');
```

Тогда это создаст что-то вроде:

<code><div class="highlight">
  <pre lang="javascript">
    alert('hello world');
  

Как мне поймать `` `(что угодно) \ n (что угодно)` `` в регулярном выражении со вкусом JavaScript?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011
r = /`{3}(?:(.*$)\n)?([\s\S]*)`{3}/m;
r.exec(yourSampleString); // => [..., "javascript", "alert('hello world');\n"]
r.exec('```puts "ok"```'); // => [..., undefined, "puts \"ok\""]
r.exec('```foo```bar```'); // => [..., undefined, "foo```bar"]
1 голос
/ 01 декабря 2011

Будет получен массив всего между

`` `

result = subject.match(/`{3}[\s\S]*?`{3}/g);

Но остерегайтесь вложенных:

```

будет проблемой ..

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