diff --git a/mithril.js b/mithril.js index bd3a8c69..4eafa038 100644 --- a/mithril.js +++ b/mithril.js @@ -306,12 +306,13 @@ Mithril = m = new function app(window) { for (var route in router) { if (route == path) return !void m.module(root, router[route]) - var matcher = new RegExp("^" + route.replace(/:[^\/]+/g, "([^\\/]+)") + "$") + var matcher = new RegExp("^" + route.replace(/:[^\/]+?\.{3}/g, "(.*?)").replace(/:[^\/]+/g, "([^\\/]+)") + "$") + if (matcher.test(path)) { return !void path.replace(matcher, function() { var keys = route.match(/:[^\/]+/g) var values = [].slice.call(arguments, 1, -2) - for (var i = 0; i < keys.length; i++) routeParams[keys[i].slice(1)] = values[i] + for (var i = 0; i < keys.length; i++) routeParams[keys[i].replace(/:|\./g, "")] = values[i] m.module(root, router[route]) }) }