HipChat Bot JS REGEX

时间:2015-02-17 19:34:49

标签: javascript regex hipchat

我对正则表达式完全没用,需要帮助。我正在为我的工作创建一个HipChat机器人,它将从HipChat创建JIRA票证.HipChat机器人能够监控聊天室的关键字..然后在使用关键字时运行JavaScript。

在我的情况下,我希望Bot监控 -

"/ask ********************************"

* = JIRA问题正文无限长的文本

所以对于这个,我需要正则表达式来挂钩,并且正则表达式将描述文本移动到一个变量..这里的任何人都可以帮助吗?

如果我没有很好地解释自己,下面是“Karma”如何工作的例子(addon.webhook)。谢谢!

https://bitbucket.org/atlassianlabs/ac-koa-hipchat-karma/src/cca57e089a2f630d924cd5df23211f0da3617063/web.js?at=master

2 个答案:

答案 0 :(得分:1)

你可以简单地使用这个正则表达式:

^\/ask (.*)$

它将捕获/ask之后的文本。请注意这里的转义反斜杠。由于您使用的是Javascript,因此实际表达式与分隔符一起使用,例如:

/^\/ask (.*)$/

这里有一个正在使用的regex101:https://regex101.com/r/tZ0iB6/1

答案 1 :(得分:0)

这是一个安静的简单正则表达式:

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;
    }
}

修改

  1. 修正了'a'变量
  2. 变量str必须是输入字符串。

    var str ='/ ask *****';