我正在尝试检查用户向机器人发送命令时是否传递了可选参数。我编写的代码如下所示。
bot.onText(/\/command (.+)?/, function(msg, match) {
let str = match[1];
if (str != null) {
console.log("not null");
} else
console.log("null");
});
现在,当我通过争论来测试代码时,将输出输出。但是,如果未通过可选论证,则没有输出。我的正则表达式不正确还是执行方式不正确?
谢谢
答案 0 :(得分:1)
您的正则表达式在命令和左括号之间有一个空格。 /\/command (.+)?/
。
因此,仅用/command
匹配正则表达式将返回整个null而不是有效数组。
尝试使用/\/command(\s.+)?/
。