node.js - 如何允许电报机器人检查命令的可选参数
问题描述
我正在尝试检查用户在向机器人发送命令时是否传递了可选的争论。我编写的代码如下所示。
bot.onText(/\/command (.+)?/, function(msg, match) {
let str = match[1];
if (str != null) {
console.log("not null");
} else
console.log("null");
});
现在,当我通过传递参数来测试代码时,会打印输出。但是,当可选参数没有通过时,没有输出。我的正则表达式不正确还是我执行的方式不正确?
谢谢
解决方案
您的正则表达式在命令和左括号之间有一个空格。/\/command (.+)?/
. 因此,将正则表达式与 only 匹配/command
将返回整个 null 而不是有效数组。尝试使用/\/command(\s.+)?/
.
推荐阅读
- python - 在 Solidworks PDM 库上运行 makepy 后缺少类方法
- python - 如何在熊猫的列中进行计算并将结果附加到列表中
- asp.net-mvc - jQuery UI:智能手机上的日期选择器问题
- java - 在 Java 中使用 Regex 拆分存储在变量中的顶级域
- python - 添加的图层必须是图层类的实例。找到:keras.layers.convolutional.Conv2DTranspose
- raspberry-pi - 有没有办法将系统调用表与具有基于 ARM 的处理器的系统的可加载模块挂钩?
- java - 当使用 accept() 方法创建套接字对象实例时,我的 java 多线程(客户端-服务器)程序抛出 NullPointerException
- math - Base32 字母表是十六进制的重叠超集?(数学/计算机科学)
- javascript - 尝试在three.js中渲染圆柱体,失败并出现错误“无法读取未定义的属性'类型'”
- makefile - 并行 make (gmake) 执行顺序