繁体   English   中英

在 JavaScript RegExp 中使用数组的正确方法是什么?

[英]What's the correct way to use an array in a JavaScript RegExp?

我正在尝试对 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 在数组上执行正则表达式以使item1item2item3都返回true什么?

item1item2.toString()给出相同的结果(一个字符串,在正则表达式中没有具有特殊含义的字符,这是key的完全匹配)。

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

您似乎认为将数组传递给RegExp构造函数将创建一个“匹配此数组中的任何项目”表达式,但它绝对不会做类似的事情

您可能希望改用item3.includes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM