【发布时间】:2018-09-10 20:29:17
【问题描述】:
我一直在玩 Hubot,实际上时间太长了,但我在匹配数组中的字符串时遇到了困难。 replies 是一个包含一些回复的数组。
所以这行得通:
module.exports = (robot) ->
robot.hear /seb/i, (msg) ->
msg.send msg.random replies
但是,这不是:
regex = new RegExp triggers.join(), 'gi'
module.exports = (robot) ->
robot.hear regex, (msg) ->
msg.send msg.random replies
regex 是由字符串数组的内容组成的字符串。在这种情况下,打印出正则表达式返回 "/seb/i"。
有人愿意解释吗?我从来都不是 JavaScript 和 Coffeescript 的忠实粉丝 :)
【问题讨论】:
-
不应该是
triggers.join('|')吗? -
显然如此。这只是一个规则吗?为什么它不能用逗号代替正则表达式?请@fardjad 将其添加到正确的答案中,并对我的问题进行可能的解释,我会将其标记为答案。
标签: javascript regex coffeescript hubot