【问题标题】:find a specific string pattern in an array jquery在数组 jquery 中查找特定的字符串模式
【发布时间】:2013-11-14 22:04:07
【问题描述】:
抱歉,如果这是重复的,但我似乎无法找到解决方案。
我正在尝试在数组中找到特定的字符串模式。
我想在包含“下划线 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。
【问题讨论】:
标签:
javascript
jquery
arrays
【解决方案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);
【解决方案2】:
我认为您正在寻找的是$.grep()。此外,$.inArray() 不会针对正则表达式测试值,它会测试是否相等。
var regex = /_r_/
var resultArray = $.grep(data, function(item){
return regex.test(item)
})
演示:Fiddle