- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有维基百科文章的内容有这样的东西:
{{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 这样的嵌套模板
我尝试使用此代码首先删除嵌套模板,然后删除信息框,但我得到了错误的结果。
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>
最佳答案
Javascript 正则表达式没有匹配嵌套括号的功能(如递归或平衡组)。正则表达式的一种方法是使用一种模式多次处理字符串,该模式可以找到最里面的括号,直到没有任何东西可以替换为止:
do {
var cnt=0;
txt = txt.replace(/{{[^{}]*(?:{(?!{)[^{}]*|}(?!})[^{}]*)*}}/g, function (_) {
cnt++; return '';
});
} while (cnt);
图案细节:
{{
[^{}]* # all that is not a bracket
(?: # this group is only useful if you need to allow single brackets
{(?!{)[^{}]* # an opening bracket not followed by an other opening bracket
| # OR
}(?!})[^{}]* # same thing for closing brackets
)*
}}
如果不想对字符串进行多次处理,也可以在找到括号时通过字符增减一个标志来读取字符串字符。
另一种使用 split 和 Array.prototype.reduce
的方法:
var stk = 0;
var result = txt.split(/({{|}})/).reduce(function(c, v) {
if (v == '{{') { stk++; return c; }
if (v == '}}') { stk = stk ? stk-1 : 0; return c; }
return stk ? c : c + v;
});
关于javascript - 如何从字符串中删除所有 Wiki 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34709748/
我在父项目 A 的子项目 B 中有几个 wiki 页面。现在我想将它们从 B 的 wiki 移动到 A 的 wiki。如何在不复制和粘贴所有页面的情况下执行此操作? Redmine论坛的人建议直接编辑
如果两个用户编辑同一个 wiki 主题,wiki(或类似的协作编辑软件)中使用了什么方法将第二个用户的编辑与第一个用户的编辑合并? 我想要一个解决方案: 不需要锁定 不会丢失对页面的任何添加。 它可能
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 8年前关闭。 Improve this questi
我们正在向许多地方的许多用户(8 个国家/地区的 200 多个用户)部署新的软件系统。过去,我们为用户编写了手册,然后经常更新。这很好用,因为所有用户都有相同的手册,它涵盖了主要内容,但也有问题,比如
这张 table 是什么样子的——只有一张吗?你如何恢复到旧版本?类似于堆栈溢出的工作方式。 最佳答案 解决此问题的最佳方法是查看其他软件,例如 MediaWiki,并了解它们如何构建数据库。然后,您
我正在尝试使用 Redmine wiki,但我很难弄清楚如何使文本看起来不那么大。这是我正在做的标记示例。关于如何使文本看起来不那么大的任何建议。 h1. Best Practices
在Redmine Wiki中,有什么方法可以在标题中使用项目符号点编号,例如 # h1. Heading 1 ## h2. Sub Heading 1 # h1. Heading 2 输出如下
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 4年前关闭。 Improve t
目前我们团队正在使用MoinMoin作为 IT wiki,它非常好。 我们希望促进最终用户使用 wiki,因为他们中的一些人对此感兴趣。例如,我们将在 wiki 上共享和编辑应用程序的要求。 我认为
我的公司将使用Confluence在我们的IT系统上存储和共享我们的知识库,并且可以用于涵盖从硬件管理到程序员所面临的问题的主题。 我对建立全局空间的最佳做法感到好奇。为整个IT部门拥有一个大型的,万
对于我正在开发的应用程序 (*),我需要混合使用动态生成的页面和静态页面。使用 wiki 会很酷,一旦动态页面被第一次访问,它就会变成静态页面,用户可以像任何其他静态 wiki 页面一样对其进行注释。
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
您在公司中使用 wiki 吗?谁使用它以及为什么使用它。您是否在项目/团队/部门之间共享信息? 最佳答案 我们用我们的来存储 编码风格文档 网络服务器和网站的设置和部署程序 网络图(Dev、Stagi
我在 Trac wiki 中创建了一些文档。我将这些页面设置为都以相同的模式开始(例如“MyDoc ...”)。我想从 Trac 中检索以该模式开头的页面的所有 wiki 页面链接。 有办法吗? 最佳
我和我的 friend 正在考虑创建我们自己的 wiki。鉴于它们最近变得如此普遍,我们听说这并不难。我们希望网站尽可能简单——我们在网页设计方面有一些经验,但在系统管理方面没有很多经验。 futur
我的服务器上运行着一个 Gitlab CE 11.7 docker。当我从 gitlab.com 导入一个项目时,它的 wiki 丢失了。我使用内置界面导入项目: 新建项目 > 导入项目 [tab]
我在我的 Wiki 中构建了一个非常广泛的表格,在列结构方面具有以下格式。是否可以在 Wiki 中插入一个计数器来跟踪此表中的列数? |- | 1||[Site Link]||Country 1|
我的 Confluence wiki 中有一个页面,它是通过脚本自动生成的,并通过其 API 被推送到 Confluence 中。因此我不需要这个页面的历史,因为页面版本的数量会很快增加。 有没有办法
是否可以在类似于 cloak macro 的 trac wiki 中显示和隐藏内容块?汇合的? 最佳答案 它已经几个月大了,但我想知道同样的事情。 Remy Blank 的回答让我走上了正轨,他只是错
我想将 100 多个 RTF 文件转换为 Wiki 标记,但我只能在网络上甚至在 StackOverflow 上找到“Wiki to RTF”转换器。 我只需要 RTF --> Wiki 标记 外面有
我是一名优秀的程序员,十分优秀!