У меня есть содержание статьи Википедии, которые имеют такие вещи, как это:Как удалить все шаблоны Wiki из строки?
{{Use mdy dates|date=June 2014}}
{{Infobox person
| name = Richard Matthew Stallman
| image = Richard Stallman - Fête de l'Humanité 2014 - 010.jpg
| caption = Richard Stallman, 2014
| birth_date = {{Birth date and age|1953|03|16}}
| birth_place = New York City
| nationality = American
| other_names = RMS, rms
| known_for = Free software movement, GNU, Emacs, GNU Compiler Collection|GCC
| alma_mater = Harvard University,<br />Massachusetts Institute of Technology
| occupation = President of the Free Software Foundation
| website = {{URL|https://www.stallman.org/}}
| awards = MacArthur Fellowship<br />EFF Pioneer Award<br />''... see #Honors and awards|Honors and awards''
}}
или
{{Citation needed|date=May 2011}}
Как удалить его? Я мог бы использовать это регулярное выражение: /\{\{[^}]+\}\}/g
, но он не будет работать для вложенных шаблонов, таких как Infobox
Я попытался использовать этот код, чтобы сначала удалить вложенные шаблоны, а затем удалить Infobox, но у меня есть неправильный результат.
var input = document.getElementById('input');
input.innerHTML = input.innerHTML.replace(/\{\{[^}]+\}\}/g, '');
<pre id="input"> {{Use mdy dates|date=June 2014}}
{{Infobox person
| name = Richard Matthew Stallman
| image =Richard Stallman - Fête de l'Humanité 2014 - 010.jpg
| caption = Richard Stallman, 2014
| birth_date = {{Birth date and age|1953|03|16}}
| birth_place = New York City
| nationality = American
| other_names = RMS, rms
| known_for = Free software movement, GNU, Emacs, GNU Compiler Collection|GCC
| alma_mater = Harvard University,<br />Massachusetts Institute of Technology
| occupation = President of the Free Software Foundation
| website = {{URL|https://www.stallman.org/}}
| awards = MacArthur Fellowship<br />EFF Pioneer Award<br />''... see #Honors and awards|Honors and awards''
}}</pre>
@yurzui это не будет работать для текста, которые содержат {{}} в более чем одном месте https://regex101.com/r/kG7bO0/2 – jcubic
@jcubic Вы имеете в виду, что 'foo' не следует сопоставлять? – tchelidze
, если вы можете сделать это в два шага, вы можете совместить внутренние сначала с внешними, это для внутренних https://regex101.com/r/pG5sS0/1 –