Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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
Javascript jquery grep,使用regex进行fitlering_Javascript_Jquery_Regex - Fatal编程技术网

Javascript jquery grep,使用regex进行fitlering

Javascript jquery grep,使用regex进行fitlering,javascript,jquery,regex,Javascript,Jquery,Regex,我将以我对正则表达式非常不好的声明开始这个问题 说到这里,我想知道是否可以使用jquery$.grep筛选数组,将字符串与特定字符串匹配,类似于: var a = ["ABC:12", "xx:ABC:2", "ASD:3", "xx:ASD:5"]; var s = a.split(","); var array = $.grep(s, function(x, y) { return ??????; }); 因此,在应用$.grep或任何其他可能有帮助的函数后,我将需要后面的

我将以我对正则表达式非常不好的声明开始这个问题

说到这里,我想知道是否可以使用jquery$.grep筛选数组,将字符串与特定字符串匹配,类似于:

 var a = ["ABC:12", "xx:ABC:2", "ASD:3", "xx:ASD:5"];
 var s = a.split(",");

 var array = $.grep(s, function(x, y) {
   return ??????;
 });
因此,在应用$.grep或任何其他可能有帮助的函数后,我将需要后面的“:”数字,这些数字与ABC有关,因此我的新数组将是:

array[12, 2];

有什么帮助吗???我真的很感激

$.grep
仅选择满足筛选函数的数组元素

您需要额外的步骤来映射灰色数组中的所有数字

var a = ["ABC:12", "xx:ABC:2", "ASD:3", "xx:ASD:5"];

var b = $.grep(a, function(item) {
    return item.indexOf("ABC:") >= 0;
});

var array = $.map(b, function(item) {
    return item.split(":").pop();
});
试一试


请不要只是张贴代码。解释此代码如何解决此问题。
var a = ["ABC:12", "xx:ABC:2", "ASD:3", "xx:ASD:5"];

// map array ,
// test array items for "ABC" string ,
// filter `Number` in strings containing "ABC" ,
// return filtered Numbers , in newly mapped array
var s = $.map(a, function(n) {
  return (/ABC/.test(n) ? Number(n.split(":").filter(Number)) : null)
}); // [12, 2]