diff --git a/src/telegram.js b/src/telegram.js index e30d4a0..d4ffa4f 100644 --- a/src/telegram.js +++ b/src/telegram.js @@ -473,6 +473,8 @@ class TelegramBot extends EventEmitter { if (!result) { return false; } + // reset index so we start at the beginning of the regex each time + reg.regexp.lastIndex = 0; debug('Matches %s', reg.regexp); reg.callback(message, result); // returning truthy value exits .some diff --git a/test/telegram.js b/test/telegram.js index eac08a9..d29ee0d 100644 --- a/test/telegram.js +++ b/test/telegram.js @@ -975,6 +975,16 @@ describe('TelegramBot', function telegramSuite() { message: { text: '/onText ECHO ALOHA' }, }); }); + it('should reset the global regex state with each message', function test(done) { + const regexp = /\/onText (.+)/g; + botWebHook.onText(regexp, () => { + assert.equal(regexp.lastIndex, 0); + return done(); + }); + utils.sendWebHookMessage(webHookPort2, TOKEN, { + message: { text: '/onText ECHO ALOHA' }, + }); + }); }); describe.skip('#onReplyToMessage', function onReplyToMessageSuite() {});