@@ -21,9 +21,10 @@ var PATH_REGEXP = new RegExp([
21
21
// Match Express-style parameters and un-named parameters with a prefix
22
22
// and optional suffixes. Matches appear as:
23
23
//
24
- // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?"]
25
- // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined]
26
- '([\\/.])?(?:\\:(\\w+)(?:\\(((?:\\\\.|[^)])*)\\))?|\\(((?:\\\\.|[^)])*)\\))([+*?])?'
24
+ // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined]
25
+ // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined]
26
+ // "/*" => ["/", undefined, undefined, undefined, undefined, "*"]
27
+ '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^()])+)\\))?|\\(((?:\\\\.|[^()])+)\\))([+*?])?|(\\*))'
27
28
] . join ( '|' ) , 'g' )
28
29
29
30
/**
@@ -63,18 +64,20 @@ function parse (str) {
63
64
var capture = res [ 4 ]
64
65
var group = res [ 5 ]
65
66
var suffix = res [ 6 ]
67
+ var asterisk = res [ 7 ]
66
68
67
69
var repeat = suffix === '+' || suffix === '*'
68
70
var optional = suffix === '?' || suffix === '*'
69
71
var delimiter = prefix || '/'
72
+ var pattern = capture || group || ( asterisk ? '.*' : '[^' + delimiter + ']+?' )
70
73
71
74
tokens . push ( {
72
75
name : name || key ++ ,
73
76
prefix : prefix || '' ,
74
77
delimiter : delimiter ,
75
78
optional : optional ,
76
79
repeat : repeat ,
77
- pattern : escapeGroup ( capture || group || '[^' + delimiter + ']+?' )
80
+ pattern : escapeGroup ( pattern )
78
81
} )
79
82
}
80
83
0 commit comments