Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex if语句中的match()返回true而不是数组_Regex_Node.js_Match - Fatal编程技术网

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'
在您的情况下,to
new\u var
user===“user”
可能会返回
true

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

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

啊,我现在明白了。我的另一个脚本中没有&。现在工作很好,非常感谢:)如果您将表达式拆分为一行,那么将更易于阅读、维护、共享,并降低出现错误的几率。