我有一个数组列表。我想获取以“ tar”和数字开头的项目
var array = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"]
我将循环访问此数组并使用正则表达式进行检查。这是我尝试过的正则表达式。但是我无法解决数字后面跟着“ tar”的问题。
.match(/^tar+\[0-9]/)
答案 0 :(得分:5)
在数组上使用filter()
,然后将正则表达式更改为^tar[0-9]+
,如下所示:
var array = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"];
var match = array.filter(str => str.match(/^tar[0-9]+/));
console.log(match);
这将检查元素是否在字符串的开头以tar
开头,然后在后面包含任何数字。
正则表达式的分解,每个字符:
^
匹配字符串的开头
tar
匹配字符串tar
[0-9]
匹配字符集0-9中的任何字符(将匹配0
,1
,2
,3
,4
,{{1} },5
,6
,7
,8
)
9
匹配一个或多个上一个选择器
答案 1 :(得分:4)
它将根据正则表达式过滤数组,该表达式基本上会找到单词tar并检查其后是否有数字
var array = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"]
console.log(array.filter((e)=>e.match(/^tar[0-9]+/)));
答案 2 :(得分:0)
使用此代码:
let array = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"]
const patt = new RegExp("tar+[0-9]");
let result = array.filter( x => patt.test(x) )
console.log(result);
答案 3 :(得分:0)
根据您的要求,尝试进行模拟。请试试。 thnx
var names = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"]
// Filter names
var filteredNames =
$.grep(names, function(v) {
if(v.match(/^tar+\d{1,}/)){
return v;
}
});
// show to console
$.each(filteredNames, function( i, val ) {
console.log(val);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>