首页 > 解决方案 > 如何允许电报机器人检查命令的可选参数

问题描述

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

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

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

现在,当我通过传递参数来测试代码时,会打印输出。但是,当可选参数没有通过时,没有输出。我的正则表达式不正确还是我执行的方式不正确?

谢谢

标签: node.jstelegramtelegram-bot

解决方案


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


推荐阅读