Правильное условие для RegExp. (vk чат бот)

98
07 ноября 2019, 11:50

Пишу чат бота для вк. Библиотека - node-vk-bot-api

Есть проблема, например у бота есть "команда", или он "слушает" определенное слово:

bot.event(/^(помощь)/i, function(ctx) {
 блаблабла
})

Из регулярки следует - что важно, чтобы слово "помощь" было первым и не имеет значения регистр. Но если у меня есть другая команда "помощь 2", то она игнорируется, т.к. бот уже нацелен на функцию выше.

Пробовал сделать через

 bot.command(/^(помощь)/i, function(ctx) {
     блаблабла
    })
bot.command(/^(помощь 2)/i, function(ctx) {
     блаблабла
    })

результат аналогичен

Вопрос: Можно ли в регулярном выражении задать такой параметр, чтобы метод реагировал только в том случае, если это вообще единственное слово в строке?

Думал над вариантом, что если бот находит слово помощь, то дальше определяет есть ли в строке дополнительные слова которые могут перенаправить на другую функцию. Но решил что метод грязноват. Есть ли другие способы это обойти? Заранее спасибо!

Answer 1

Попробуйте со знаком конца строки: /^(помощь)$/i

READ ALSO
Работа с сессиями

Работа с сессиями

Учусь работать с сессиями и мне надо их в базу данных как-то сохранять ( PostgreSQL )Пишу на nodejs с использованием Express

109
Как получить свойства объекта из DocumentSnapshot firestore?

Как получить свойства объекта из DocumentSnapshot firestore?

В сервисе получаю documentSnapshot документа из firebase

129
Сортировка колонок в таблице с помощью sortBy (lodash)

Сортировка колонок в таблице с помощью sortBy (lodash)

Для сортировки колонок в таблице использую sortBy (lodash)Не могу додуматься как передать sortColumn из state компонента

140
Как собрать vue-проект в один js-файл?

Как собрать vue-проект в один js-файл?

нужно проект на vue собрать в один файл (например appjs) Для создания проекта использовал vue-cli-3 и команду vue create <my-project>

102