当我在下面运行这段代码时,结果将是["ai", "ai"]。我正在尝试创建一个返回["airport", "airplane"]的函数。做这件事最好的方法是什么?
var gill = ['airplane', 'airport', 'apple', 'ball']
function auto(word, array) {
var geo = array.join(" ")
var snoop = new RegExp(word, "gi")
var gip = geo.match(snoop)
console.log(gip)
}
auto("ai", gill)发布于 2016-06-16 02:45:09
var snoop = new RegExp("\\b\\S*" + word + "\\S*", "gi");似乎能做好这份工作。它使用单词边界检查(\b)。
但是,在ECMAScript 5.1中有更好的选择,例如使用filter
var gill = [
"airplane",
"airport",
"apple",
"ball"
];
function auto(array, word){
return array.filter(function(a){
return new RegExp(word, "gi").test(a);
});
}
console.log(auto(gill, "ai"));
https://stackoverflow.com/questions/37848924
复制相似问题