From 55fba179f0f41261704fbccd322089c4fa5e1ba1 Mon Sep 17 00:00:00 2001 From: FelisCatus Date: Fri, 22 May 2015 21:54:42 +0800 Subject: [PATCH] Escape back slashes in shExp2RegExp. Add unit tests. Fix #473. --- omega-pac/src/shexp_utils.coffee | 2 +- omega-pac/test/shexp_utils.coffee | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/omega-pac/src/shexp_utils.coffee b/omega-pac/src/shexp_utils.coffee index 05931c7..27d78b4 100644 --- a/omega-pac/src/shexp_utils.coffee +++ b/omega-pac/src/shexp_utils.coffee @@ -1,6 +1,6 @@ module.exports = exports = regExpMetaChars: do -> - chars = '''[\^$.|?*+(){}/''' + chars = '''\\[\^$.|?*+(){}/''' set = {} for i in [0...chars.length] set[chars.charCodeAt(i)] = true diff --git a/omega-pac/test/shexp_utils.coffee b/omega-pac/test/shexp_utils.coffee index 56452cc..e94af06 100644 --- a/omega-pac/test/shexp_utils.coffee +++ b/omega-pac/test/shexp_utils.coffee @@ -13,3 +13,7 @@ describe 'ShexpUtils', -> it 'should know the difference between escaped and unescaped slashes', -> regex = ShexpUtils.escapeSlash '\\\\/\\/test\\/' regex.should.equal '\\\\\\/\\/test\\/' + describe '#shExp2RegExp', -> + it 'should escape regex meta chars and back slashes', -> + regex = ShexpUtils.shExp2RegExp 'this.is|a\\test+' + regex.should.equal '^this\\.is\\|a\\\\test\\+$'