diff --git a/History.md b/History.md index e7fa9ff..9cce27b 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,8 @@ +0.2.1 / 2014-06-11 +================== + + * Fixed a major capturing group regexp regression + 0.2.0 / 2014-06-09 ================== diff --git a/component.json b/component.json index a413a5a..f40e393 100644 --- a/component.json +++ b/component.json @@ -1,7 +1,7 @@ { "name": "path-to-regexp", "description": "Express style path to RegExp utility", - "version": "0.2.0", + "version": "0.2.1", "keywords": [ "express", "regexp", diff --git a/index.js b/index.js index d56f4fc..0f3db6b 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ var PATH_REGEXP = new RegExp([ // // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?"] // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined] - '([\\/.])?(?:\\:(\\w+)(?:\\((.+)\\))?|\\((.+)\\))([+*?])?', + '([\\/.])?(?:\\:(\\w+)(?:\\(((?:\\\\.|[^)])*)\\))?|\\(((?:\\\\.|[^)])*)\\))([+*?])?', // Match regexp special characters that should always be escaped. '([.+*?=^!:${}()[\\]|\\/])' ].join('|'), 'g'); diff --git a/package.json b/package.json index 27df532..cc85474 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "path-to-regexp", "description": "Express style path to RegExp utility", - "version": "0.2.0", + "version": "0.2.1", "scripts": { "test": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec" }, diff --git a/test.js b/test.js index a811ed0..ecfc833 100644 --- a/test.js +++ b/test.js @@ -764,6 +764,19 @@ var TESTS = [ [], '/.+*?=^!:${}[]|', ['/.+*?=^!:${}[]|'] + ], + + /** + * Regressions. + */ + [ + '/:remote([\\w-.]+)/:user([\\w-]+)', + [ + { name: 'remote', delimiter: '/', optional: false, repeat: false }, + { name: 'user', delimiter: '/', optional: false, repeat: false } + ], + '/endpoint/user', + ['/endpoint/user', 'endpoint', 'user'] ] ];