| 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
 | | var safe = require('../'); |  | var test = require('tape'); |  |   |  | var good = [ |  |     /\bOakland\b/, |  |     /\b(Oakland|San Francisco)\b/i, |  |     /^\d+1337\d+$/i, |  |     /^\d+(1337|404)\d+$/i, |  |     /^\d+(1337|404)*\d+$/i, |  |     RegExp(Array(26).join('a?') + Array(26).join('a')), |  | ]; |  |   |  | test('safe regex', function (t) { |  |     t.plan(good.length); |  |     good.forEach(function (re) { |  |         t.equal(safe(re), true); |  |     }); |  | }); |  |   |  |   |  | var bad = [ |  |     /^(a?){25}(a){25}$/, |  |     RegExp(Array(27).join('a?') + Array(27).join('a')), |  |     /(x+x+)+y/, |  |     /foo|(x+x+)+y/, |  |     /(a+){10}y/, |  |     /(a+){2}y/, |  |     /(.*){1,32000}[bc]/ |  | ]; |  |   |  | test('unsafe regex', function (t) { |  |     t.plan(bad.length); |  |     bad.forEach(function (re) { |  |         t.equal(safe(re), false); |  |     }); |  | }); |  |   |  | var invalid = [ |  |     '*Oakland*', |  |     'hey(yoo))', |  |     'abcde(?>hellow)', |  |     '[abc' |  | ]; |  |   |  | test('invalid regex', function (t) { |  |     t.plan(invalid.length); |  |     invalid.forEach(function (re) { |  |         t.equal(safe(re), false); |  |     }); |  | }); | 
 |