diff --git a/browser.js b/browser.js index 31cfbe6..c7de01e 100644 --- a/browser.js +++ b/browser.js @@ -137,7 +137,8 @@ function has(is, glob, ch) { function escape(str) { var re = /\{([^{}]*?)}|\(([^()]*?)\)|\[([^\[\]]*?)\]/g; - return str.replace(re, function (outter, inner) { + return str.replace(re, function (outter, braces, parens, brackets) { + var inner = braces || parens || brackets; if (!inner) { return outter; } return outter.split(inner).join(esc(inner)); }); diff --git a/index.js b/index.js index 41909e6..ea0060d 100644 --- a/index.js +++ b/index.js @@ -136,7 +136,8 @@ function has(is, glob, ch) { function escape(str) { var re = /\{([^{}]*?)}|\(([^()]*?)\)|\[([^\[\]]*?)\]/g; - return str.replace(re, function (outter, inner) { + return str.replace(re, function (outter, braces, parens, brackets) { + var inner = braces || parens || brackets; if (!inner) { return outter; } return outter.split(inner).join(esc(inner)); }); diff --git a/test.js b/test.js index 1bc1086..f512768 100644 --- a/test.js +++ b/test.js @@ -332,6 +332,12 @@ describe('should get a base path:', function () { }); it('character classes:', function () { + assert.equal(parse('/[.]bashrc').base, '/'); + assert.equal(parse('/[.]bashrc').glob, '[.]bashrc'); + assert.equal(parse('/[.]bashrc').path.basename, '[.]bashrc'); + assert.equal(parse('/[.]bashrc').path.filename, '[.]bashrc'); + assert.equal(parse('/[.]bashrc').path.extname, ''); + assert.equal(parse('[a-c]b*').base, '.'); assert.equal(parse('[a-c]b*').glob, '[a-c]b*');