在数组 jQuery 中查找特定的字符串模式

find a specific string pattern in an array jquery

本文关键字:字符串 模式 查找 数组 jQuery      更新时间:2023-09-26

如果这是重复的,请道歉,但我似乎找不到解决方案。我正在尝试在数组中找到特定的字符串模式。我想在包含"下划线 r 下划线"的数据中找到所有值。然后,我想创建一个仅包含这些键和值的新数组。

var data = ["something", "bar_r_something"];
var resultArray = new Array();    
for (var i = 0; i < data.length; i++) {
    var bar = /_r_/;
    if ($.inArray(bar, data[i].length) > 0)
    {
       console.log("found _r_");
       resultArray.push(data[i]);
    }
};

我似乎无法让 $.inArray 工作,它似乎总是踢出 -1。

var data = ["something", "bar_r_something"];
var resultArray = new Array();
for (var i = 0; i < data.length; i++) {
    var bar = /_r_/;
    if (bar.test(data[i])) {
        alert("found _r_");
        resultArray.push(data[i]);
    }
};
console.log(resultArray);

在这里,它不使用$.inArray,而是使用正则表达式,希望这很酷!

编辑

如果你想更花哨一点,你可以使用 JavaScript 的过滤方法,如下所示:

var data = ["something", "bar_r_something"];
var resultArray = data.filter(function(d){
    return /_r_/.test(d);
});
console.log(resultArray);

我认为您正在寻找的是 $.grep()。此外,$.inArray() 不会针对正则表达式测试值,而是测试相等性。

var regex = /_r_/
var resultArray  = $.grep(data, function(item){
    return regex.test(item)
})

演示:小提琴