我希望能找到办法让巨人队在这里找到一个变数。例如
name = "Peter"
module.exports = (robot) ->
robot.hear /hello name/i, (msg) ->
msg.send "Peter?! No I am Hubot."我已经尝试过像下面这样的"#{}“语法,但是它没有结果。
name = "Peter"
module.exports = (robot) ->
robot.hear /hello #{name}/i, (msg) ->
msg.send "Peter?! No I am Hubot."任何帮助都将不胜感激。
致以敬意,
奥斯汀
发布于 2015-12-05 07:42:55
由于regex不是常量,所以应该使用new Regex()。
使用构造函数提供正则表达式的运行时编译。当您知道正则表达式模式将发生变化时,或者您不知道该模式并从另一个源(如用户输入)获取该模式时,请使用构造函数。
码
name = "Peter"
regx = new Regex("hello #{ name }", 'i')
module.exports = (robot) ->
robot.hear regx, (msg) ->
msg.send "Peter?! No I am Hubot."以名称作为参数的编辑
module.exports = (robot, name) ->
regx = new Regex("hello #{ name }", 'i')
robot.hear regx, (msg) ->
msg.send "#{ name }?! No I am Hubot."发布于 2018-01-03 00:46:22
如果有用的话,使用javascript而不是coffeescript的hubot示例也使用所选的选项并将其放入另一个变量中:
const options = 'now|later|never';
const regexOptions = new RegExp(`starting (${options})`, 'i');
robot.respond(regexOptions, (msg) => {
// this will respond to:
// hubot starting now
// but not to:
// hubot starting notAnOption
const optionChosen = msg.match[1];
msg.send(`option chosen: ${optionChosen}`);
});当我有可以添加或删除名称的动态列表时,我使用这种技术,然后我想在响应中使用该技术--当然,在向命令中使用的列表中添加名称时,它确实需要对hubot进行快速重新加载。
https://stackoverflow.com/questions/34098300
复制相似问题