在数组 jQuery 中查找特定的字符串模式
find a specific string pattern in an array jquery
如果这是重复的,请道歉,但我似乎找不到解决方案。我正在尝试在数组中找到特定的字符串模式。我想在包含"下划线 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)
})
演示:小提琴
相关文章:
- 如何在Javascript中将字符串与模式数组相匹配
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- 从Regex模式获取子字符串
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- 在字符串中搜索模式并存储其值
- 获取非标准模式中的子字符串
- 模式显示文本区域内容不是字符串
- 带有模式的正则表达式字符串
- 在数组 jQuery 中查找特定的字符串模式
- Angular JS - 具有自定义验证规则的字符串模式
- 如何验证输入字段以确保Javascript中的特定字符串模式
- 使用Regex在字符串模式出现前后插入文本
- 在Javascript中测试字符串模式匹配
- 用于从字符串模式中提取城市名称的正则表达式
- Emacs -用另一个字符串模式替换一些字符串模式
- 从字符串中提取特定的字符串模式
- Javascript字符串模式匹配给出空结果
- 使用RegExp替换字符串模式的Javascript
- 匹配字符串模式的最简单方法
- 在正则表达式中验证字符串模式