-
Notifications
You must be signed in to change notification settings - Fork 1
/
challenge4.html
93 lines (85 loc) · 4.45 KB
/
challenge4.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>正则周二挑战赛 - 第四周</title>
<link rel="stylesheet" href="assets/style.css">
</head>
<body>
<header>
<h1>正则周二挑战赛 - 第四周</h1>
<nav>
<a href="./">« 查看所有挑战</a>
</nav>
</header>
<section>
<blockquote>
<p>
<span title="This weeks Regex Tuesday Challenge is to write part of a MarkDown parser">
本周二的正则挑战是匹配 MarkDown 的一部分
</span>
<span title="-">
-
</span>
<span title="turn italic MarkDown (*this is italic*) into HTML italic: <em>this is italic</em>.">
MarkDown 斜体 (<code>*我是斜体*</code>) 转为 HTML 斜体: <code><em>我是斜体</em></code>.
</span>
<span title="It should not, however, match bold text - text surrounded by multiple asterisks.">
但是不要匹配加粗部分 (<code>**我是加粗部分**</code>)。
</span>
</p>
</blockquote>
<blockquote>在你输入正则之后,每个测试用例都会标注为是否通过,红色是未通过,绿色是通过,因为是基于 web 的,所以只能使用基于 JavaScript 传统型 NFA (Traditional NFA)正则引擎。它类似于PCRE,但有一些不同之处。</blockquote>
<p>
<input type="text" id="find" placeholder="/正则? 写这里../i">
<input type="text" id="replace" placeholder="替换字符">
</p>
<h3>测试用例 (<span id='passed-count'>0</span>/11) <a id='permalink' class='button' href='./challenge4.html'>永久链接 (分享连接)</a> <label id="hide_passing"><input type="checkbox"> 隐藏通过的条目</label></h3>
<dl id='tests'>
<dt>This text is not italic.</dt><dd>This text is not italic.</dd>
<dt>*This text is italic.*</dt><dd><em>This text is italic.</em></dd>
<dt>This text is *partially* italic</dt><dd>This text is <em>partially</em> italic</dd>
<dt>This text has *two* *italic* bits</dt><dd>This text has <em>two</em> <em>italic</em> bits</dd>
<dt>**bold text (not italic)**</dt><dd>**bold text (not italic)**</dd>
<dt>**bold text with *italic* **</dt><dd>**bold text with <em>italic</em> **</dd>
<dt>**part bold,** *part italic*</dt><dd>**part bold,** <em>part italic</em></dd>
<dt>*italic text **with bold** *</dt><dd><em>italic text **with bold** </em></dd>
<dt>*italic* **bold** *italic* **bold**</dt><dd><em>italic</em> **bold** <em>italic</em> **bold**</dd>
<dt>*invalid markdown (do not parse)**</dt><dd>*invalid markdown (do not parse)**</dd>
<dt>random *asterisk</dt><dd>random *asterisk</dd>
</dl>
<div id="congratulations">Congratulations, your regex passes all the test cases! Remember to share this challenge.</div>
</section>
<footer>
Public domain. Site by <a href="http://macr.ae/">Callum Macrae</a>
</footer>
<script src="assets/challenge.js"></script>
<!-- Social media -->
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<script type="text/javascript">
window.___gcfg = {lang: 'en-GB'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=251120905643";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-10431066-8']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>