我最近刚开始使用Hubot。
我想知道是否使用了命令,但没有输入任何参数。
robot.respond(/dothis (.*)/i, function(res) { ... };
如果没有输入任何参数,则不会返回任何内容,即使它接受0个或多个参数。
robot.respond(/dothis/i, function(res) { ... };
这不接受任何参数,但在调用时会响应。
不太确定如何解决这个问题,有可能吗?
答案 0 :(得分:1)
我认为你需要一个能够以直接的方式处理正面观察的正规表达引擎,而且我不认为V8(这是Node在引擎盖下使用的)在撰写本文时。
但是还有很多其他的解决方法。这是使用\b
检查字边界的人:
robot.respond(/dothis\b(.*)/i, function(res) {
if (res.match[1]) {
res.send('We got the paramater: ' + res.match[1].trim());
} else {
res.send('Command called with no parameter.');
}
});
答案 1 :(得分:0)
robot.respond(/dothis(.*)/i, function(res) { ... };
这是有效的,这个空间会有所不同。它现在将一个空字符串作为参数。