我只有一个问题可能是愚蠢的(比如每天)
var word = []; (an array with 100 words for example)
var tab = []; // resultat
var root = "test";
var debut = "Anti";
var reg1=new RegExp("^"+debut + "+." + root,"g")
for(var i = 0;i<word.length; i++){
// a word begin with Anti and contain test pls
if (word[i].match(reg1)){´
tab.push(word[i])
}
}
console.log(tab.join(', ');
但它不起作用,我不知道如何使用regexpr变量,谢谢,对不起我的英语
答案 0 :(得分:0)
('1929-03-12', 'name4'),
('2023-07-01', 'name7'),
('2015-02-15', 'namex'),
('1980-12-23', 'name2'),
&#13;
答案 1 :(得分:0)
这是代码,但使用的是test()而不是match()
var word=["yea","antiboyahtest","antigssjshbztest"];
var debut="anti";
var root="test";
var reg=new RegExp("^"+debut+".*"+root,"g");
var tabs=[];
for(i in word){
if(reg.test(word[i])){
tabs.push(word[i]);
}
}
alert(tabs);
答案 2 :(得分:0)
使用RegExp.test
和Array.filter
函数的解决方案:
var word = ['Antitest', 'Antidot', 'Anti-next-test', 'testAnti'],
root = "test", debut = "Anti",
reg1 = new RegExp("^"+debut + ".*?" + root, "g");
var result = word.filter(function (w) {
return reg1.test(w);
});
console.log(result); // ["Antitest", "Anti-next-test"]
此外,还有一种方法是使用Array.indexOf
函数而不使用任何正则表达式,这将产生相同的结果:
...
var result = word.filter(function (w) {
return w.indexOf(debut) === 0 && w.indexOf(root) !== -1;
});