регулярное выражение: игнорировать между скобками и круглыми скобками

#jquery #regex #markdown #markitup

#jquery #регулярное выражение #уценка #markitup

Вопрос:

У меня есть регулярное выражение, которое проверяет, включена ли фраза:

 var regex = new RegExp( "(\s|\b)"   phrases[i]   "(\s|\b)", "i" );
var result = regex.test( value );
  

Что мне нужно, так это игнорировать фразу, если она находится между скобками [] И круглыми скобками () .

На самом деле я использую Markdown для генерации HTML, но я не хочу, чтобы он принимал фразу, если она находится в синтаксисе ссылки или изображения markdown.

Пример:

Требуя фразу ‘test’, он примет:

dfg dfg df [gdf](http://test123.com "test") gdfg df gdfg

Потому что «тест» находится в заголовке ссылки.

Если я смогу заставить его игнорировать фразу внутри синтаксиса [...](...) , это было бы потрясающе.

Если нет, то просто игнорирование чего-либо между скобками или круглыми скобками будет работать.

Ответ №1:

Вы можете разобрать скобки, за которыми следуют круглые скобки, с помощью этого регулярного выражения.

 var string = 'dfg dfg df [gdf](http://test123.com "test") gdfg df gdfg'
string.replace(/[.*][(].*[)]/g,'');