找到数组中匹配的单词,并且排序
此处对排序并不是很理解,暂且理解为完全匹配>前缀匹配>后缀匹配>包含匹配
var arr = ["ykit-config-yo","mykit","fekit","ykit-config-fekit","ykit","mykitcon"];
var n = arr.length;
var suffix = "ykit";
var reg1 = new RegExp(suffix); //包含
var reg2 = new RegExp("^("+suffix+")"); //前缀
var reg3 = new RegExp("("+suffix+")$"); //后缀
var reg4 = new RegExp("^("+suffix+")$"); //完全
console.log(reg1); // /ykit/
console.log(reg2); // /^(ykit)/
console.log(reg3); // /(ykit)$/
console.log(reg4); // /^(ykit)$/
var result = []; //完全匹配的数组
var pre = []; //前缀数组
var next =[]; //后缀数组
var main = []; //包含数组
for(var j=0;j<n;j++){
if(reg4.test(arr[j])){
result.push(arr[j]);
}
else if(reg2.test(arr[j])){
pre.push(arr[j]);
}
else if(reg3.test(arr[j]))
{
next.push(arr[j]);
}
else if(reg1.test(arr[j])){
main.push(arr[j])
}
}
console.log(main); // [ 'mykitcon' ]
console.log(pre); // [ 'ykit-config-yo', 'ykit-config-fekit' ]
console.log(next); // [ 'mykit' ]
console.log(result); // [ 'ykit' ]
result = result.concat(pre.concat(next.concat(main))); // 将所有数组拼接到result后输出
if(result.length == 0 ){
console.log("error");
}
else{
for(var k=0;k<result.length;k++){
console.log(result[k]);
}
}
// ykit
// ykit-config-yo
// ykit-config-fekit
// mykit
// mykitcon










网友评论