不知对否

2017-09-20  本文已影响6人  Pretty_Boy

找到数组中匹配的单词,并且排序
此处对排序并不是很理解,暂且理解为完全匹配>前缀匹配>后缀匹配>包含匹配

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
上一篇 下一篇

猜你喜欢

热点阅读