第二个字符串匹配,分别把有前缀和没有前缀的放在两个数组里排序后,再合并。测试用例可以过,不知道有没有啥问题。
function reg(arr){
var len = arr.length,
key = arr[len-1];
var myreg1 = new RegExp('^[a-z]+' + key,'i'), //匹配有前缀的
myreg2 = new RegExp('^' + key,i), //匹配没有前缀的
newArr1 = [],
newArr2 = [];
for(var i = 0;i < len-1;i++){
if(myreg1.test(arr[i])){
newArr1.push(arr[i]);
}else if(myreg2.test(arr[i])){
newArr2.push(arr[i]);
}
}
newArr1.sort();
newArr2.sort();
var res = newArr2.concat(newArr1);
console.log(res);
}
var test = ['ykit-config-yo','mykit','fekit','ykit-config-fekit','ykit','ykit'];
reg(test);