if语句中的match()返回true而不是数组

时间:2016-11-09 19:51:28

标签: regex node.js match

我从另一个脚本中复制了这个(由我自己编写出于同样的目的),所以无法弄清楚它为什么没有按预期工作

} else if (new_var = message.toLowerCase().match(/!test\s(.+)/) && user === 'user') {

然后我将以下内容传递给message

!test test

所以我的理解是new_var应包含以下内容

new_var[0] = !test test
new_var[1] = test

但是,console.log(new_var)返回true

1 个答案:

答案 0 :(得分:4)

您正在分配

的结果
message.toLowerCase().match(/!test\s(.+)/) && user === 'user'

new_varuser === 'user'可能会在您的情况下返回true

&&的优先级高于=。使用括号进行更改:

(new_var = message.toLowerCase().match(/!test\s(.+)/)) && user === 'user'