From 8ba3cdaaaddc1c8f4f74ff765c6abff1a85afbd7 Mon Sep 17 00:00:00 2001 From: Huan LI Date: Sun, 4 Dec 2016 12:53:23 +0800 Subject: [PATCH] escape ' for filter function #116 --- src/contact.ts | 1 + src/room.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/contact.ts b/src/contact.ts index 2458a747..1aba4d80 100644 --- a/src/contact.ts +++ b/src/contact.ts @@ -201,6 +201,7 @@ export class Contact implements Sayable { if (nameFilter instanceof RegExp) { filterFunction = `(function (c) { return ${nameFilter.toString()}.test(c) })` } else if (typeof nameFilter === 'string') { + nameFilter = nameFilter.replace(/'/g, '\\\'') filterFunction = `(function (c) { return c === '${nameFilter}' })` } else { throw new Error('unsupport name type') diff --git a/src/room.ts b/src/room.ts index b83a93bd..ef7ffb09 100644 --- a/src/room.ts +++ b/src/room.ts @@ -426,6 +426,7 @@ export class Room extends EventEmitter implements Sayable { if (topicFilter instanceof RegExp) { filterFunction = `(function (c) { return ${topicFilter.toString()}.test(c) })` } else if (typeof topicFilter === 'string') { + topicFilter = topicFilter.replace(/'/g, '\\\'') filterFunction = `(function (c) { return c === '${topicFilter}' })` } else { throw new Error('unsupport topic type') -- GitLab