Skip to content

Commit ed89f6d

Browse files
authored
Merge pull request #44 from moshfeu/regex-error
Display an error message when the regex is invalid #43
2 parents 7b06541 + 3a09463 commit ed89f6d

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

application.css

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,17 +229,22 @@ input, textarea, #results, #groups {
229229
width: 565px;
230230
}
231231

232-
#output, #error {
232+
#output, #error, #regex-error {
233233
display: none;
234234
}
235235

236-
#intro, #error, #output {
236+
#intro, #error, #output, #regex-error {
237237
margin: 10px -30px -30px -30px;
238238
padding: 30px;
239239
background-color: #eef;
240240
border-top: 1px solid #dde;
241241
}
242242

243+
#regex-error {
244+
color: #f7296f;
245+
font-size: 14px;
246+
}
247+
243248
#results li {
244249
margin-bottom: 10px;
245250
}

index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ <h2>Test Strings:</h2>
5656
<div id="error">
5757
<p>No Matches</p>
5858
</div>
59+
<div id="regex-error">
60+
<p>Invalid regular expression</p>
61+
</div>
5962

6063
<div id="output">
6164
<h2>Match Results:</h2>

scripts/application.coffee

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ class Results
4747
$('ul#groups').empty()
4848
count = 1
4949

50+
if @expression.regexp.val() != ''
51+
try
52+
new RegExp(@expression.regexp.val())
53+
catch
54+
@showRegexError()
55+
return true
5056
if @expression.regexp.val() == '' && @test_strings.input.val() == ''
5157
@showIntro()
5258
return true
@@ -72,11 +78,11 @@ class Results
7278
url += "/#" + expression_url + encodeURIComponent("||||") + test_strings_url
7379
$("#share_link").attr("href", url)
7480

75-
###
81+
###
7682
escape function from Peter Hoffman found at
7783
http://peter-hoffmann.com/2012/coffeescript-string-interpolation-with-html-escaping.html
7884
###
79-
escape: (s) ->
85+
escape: (s) ->
8086
(''+s).replace(/&/g, '&amp;').replace(/</g, '&lt;')
8187
.replace(/>/g, '&gt;').replace(/"/g, '&quot;')
8288
.replace(/'/g, '&#x27;').replace(/\//g,'&#x2F;')
@@ -117,16 +123,25 @@ class Results
117123
$('#error').hide()
118124
$('#output').hide()
119125
$('#intro').show()
126+
$('#regex-error').hide()
120127

121128
showError: ->
122129
$('#intro').hide()
123130
$('#output').hide()
124131
$('#error').show()
132+
$('#regex-error').hide()
125133

126134
showOutput: ->
127135
$('#intro').hide()
128136
$('#error').hide()
129137
$('#output').show()
138+
$('#regex-error').hide()
139+
140+
showRegexError: ->
141+
$('#intro').hide()
142+
$('#error').hide()
143+
$('#output').hide()
144+
$('#regex-error').show()
130145

131146
class App
132147
constructor: ->

0 commit comments

Comments
 (0)