什么';在JavaScript正则表达式中使用数组的正确方法是什么?

什么';在JavaScript正则表达式中使用数组的正确方法是什么?,javascript,Javascript,我试图在JavaScript中的字符串数组上使用正则表达式 let item1 = "Low-income families"; let item2 = ["Low-income families"]; let item3 = ["Low-income families", "LatinX/Hispanic", "Children and youth", "Rural"]; let key = "Low-income families"; console.log(new RegExp(ite

我试图在JavaScript中的字符串数组上使用正则表达式

let item1 = "Low-income families";
let item2 = ["Low-income families"];
let item3 = ["Low-income families", "LatinX/Hispanic", "Children and youth", "Rural"];

let key = "Low-income families";

console.log(new RegExp(item1, 'giu').test(key) || key === '') //Prints true
console.log(new RegExp(item2, 'giu').test(key) || key === ''); //Prints true
console.log(new RegExp(item3, 'giu').test(key) || key === ''); //Prints false


我的问题是,为什么
item2
使用该正则表达式返回
true
,而
item3
返回
false
?在数组上执行正则表达式的正确方法是什么,以便
item1
item2
item3
都返回
true

item1
item2.toString()
给出相同的结果(一个字符串,在正则表达式中没有特殊意义的字符,它与
完全匹配)

item3.toString()
没有给出与
完全匹配的字符串,也没有给出它的子字符串

您似乎觉得将数组传递给
RegExp
构造函数将创建一个“匹配此数组中的任何项”表达式,但它绝对不会这样做


您可能想改用。

可能与此有关。我假设
item2
被转换为一个模式。感谢这一帮助。当item2工作时,我感到困惑,我没有意识到JS中的数组有一个显式的toString()方法编写。此外,还不完全清楚
RegExp
的构造函数是否接受字符串。