array.includes使用正则表达式

时间:2018-03-14 11:33:03

标签: javascript arrays regex

我有这个数组:

array = ['S2B_MSIL1C_20180310T041559_N0206_R090_T46QEK_20180310T075716.SAFE'];

和这个正则表达式:

regex = new RegExp('S2B_MSIL1C_20180310T041559_N0206_R090_T46QEK_20180310T075716' + '.SAFE','g');

当我使用array.includes(regex);时,会返回false。我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

使用Array.some

var yourRegex = /pattern/g ;
var atLeastOneMatches = array.some(e => yourRegex.test(e));

在数组中的第一个返回true之后,Array.some返回true。如果它没有true遍历整个数组,则返回false。

答案 1 :(得分:1)

RgExps不用于搜索数组,包含方法用于查找数组中是否包含所需对象。在这里你传递了Regex对象到你的include方法,所以它告诉你你的数组中没有正则表达式对象。

你必须做以下其中一项:

array.includes('S2B_MSIL1C_20180310T041559_N0206_R090_T46QEK_20180310T075716' + '.SAFE');

var yourRegex = /pattern/g ;
for(var i = 0 ; i<arr.length ; i++)
{
    if(yourRegex.test(arr[i]))
    {
        //Founded
        return true;
    }
}