Regex if语句中的match()返回true而不是数组
我从另一个脚本中复制了这个脚本(由我自己为同样的目的编写),因此无法理解为什么它不能按预期工作Regex if语句中的match()返回true而不是数组,regex,node.js,match,Regex,Node.js,Match,我从另一个脚本中复制了这个脚本(由我自己为同样的目的编写),因此无法理解为什么它不能按预期工作 } else if (new_var = message.toLowerCase().match(/!test\s(.+)/) && user === 'user') { 然后我将以下内容作为消息传递 !test test 所以我的理解是,new\u var应该包含以下内容 new_var[0] = !test test new_var[1] = test 但是,console.
} else if (new_var = message.toLowerCase().match(/!test\s(.+)/) && user === 'user') {
然后我将以下内容作为消息传递
!test test
所以我的理解是,new\u var
应该包含以下内容
new_var[0] = !test test
new_var[1] = test
但是,console.log(new\u var)
正在返回true您正在分配
message.toLowerCase().match(/!test\s(.+)/) && user === 'user'
在您的情况下,tonew\u var
和user===“user”
可能会返回true
&&
的优先级高于=
。使用括号进行更改:
(new_var = message.toLowerCase().match(/!test\s(.+)/)) && user === 'user'
啊,我现在明白了。我的另一个脚本中没有&。现在工作很好,非常感谢:)如果您将表达式拆分为一行,那么将更易于阅读、维护、共享,并降低出现错误的几率。