如何允许电报机器人检查命令的可选论据

时间:2018-06-23 16:55:51

标签: node.js telegram telegram-bot

我正在尝试检查用户向机器人发送命令时是否传递了可选参数。我编写的代码如下所示。

bot.onText(/\/command (.+)?/, function(msg, match) {
    let str = match[1];

    if (str != null) {
       console.log("not null");
    } else
       console.log("null");
});

现在,当我通过争论来测试代码时,将输出输出。但是,如果未通过可选论证,则没有输出。我的正则表达式不正确还是执行方式不正确?

谢谢

1 个答案:

答案 0 :(得分:1)

您的正则表达式在命令和左括号之间有一个空格。 /\/command (.+)?/。 因此,仅用/command匹配正则表达式将返回整个null而不是有效数组。 尝试使用/\/command(\s.+)?/