HipChat Bot JS REGEX
Я совершенно бесполезен с Регулярными выражениями и мне нужна помощь с этим. В настоящее время я создаю бота HipChat для своей работы, который будет создавать билеты JIRA из HipChat. Боты HipChat имеют возможность отслеживать чат-комнату для ключевых слов... затем запустить JavaScript, если ключевое слово было использовано.
В моем случае я бы хотел, чтобы бот следил за -
"/ask ********************************"
куда *
= текст тела выпуска JIRA неограниченной длины
так что для этого мне понадобится регулярное выражение для подключения, а также регулярное выражение для перемещения текста описания в переменную... кто-нибудь здесь сможет помочь??
Если я плохо объяснил себя, ниже приведен пример того, как работает "Карма" (addon.webhook). Спасибо!
2 ответа
Вы можете просто использовать это регулярное выражение:
^\/ask (.*)$
Захватит текст после /ask
, Обратите внимание на обратную косую черту здесь. Поскольку вы используете Javascript, фактическое выражение используется с разделителями, например:
/^\/ask (.*)$/
Вот regex101 для игры: https://regex101.com/r/tZ0iB6/1
Это тихое простое регулярное выражение:
var matches = /^\/ask\s+(.*)$/i.exec(str);
if (matches && matches.length > 0) {
var content = matches[1];
}
Если вы хотите сопоставить несколько разных команд, вы можете использовать что-то вроде этого:
var matches = /^\/([^\s]+)\s+(.*)$/g.exec(str);
if (matches && matches.length > 0) {
var command = matches[1];
var content = matches[2];
switch(command.toLowerCase()) {
case 'ask':
// do something
break;
default:
// command not found
break;
}
}
Редактировать:
- Исправлена переменная 'a'
переменная str должна быть входной строкой.
var str = '/ ask *****';