var arr=["weeweadbshow","jhsaasrbgddbshow","ccbshow"];
function Longest(Arr){正則表達式
//字符串長度排序,優先選擇最短的字符串,儘量的減小性能開支
Arr=String_ArraySort(Arr);
var wholeArr=[] //最短字符串所能產生的全部子串
,fristStr=Arr.shift() // 以最短子串爲基準
, count=0 //結果長度
,result=""; //結果數組
//截取子串
for (var i=0;i<fristStr.length;i++) {
for (var j=i+1;j<=fristStr.length;j++) {
wholeArr.push(fristStr.substring(i,j));
}
}函數
//遍歷全部的子串
for (var i=0;i<wholeArr.length;i++) {
var AllArray=[]; //創建一個結果過渡數組性能
//使用正則表達式來檢索其餘的字符串
var patt=new RegExp(wholeArr[i]);
for (var j=0;j<Arr.length;j++) {
var reArr=Arr[j].match(patt); //使用正則表達式來檢索,match函數直接返回結果
if (reArr) { //若是沒檢索到,返回一個false值,若是匹配到就返回結果
AllArray=AllArray.concat(reArr); //向結果過渡函數添加值
}
}
if (AllArray.length==Arr.length) { //驗證是否在其餘字符串中是否都匹配到了子串排序
if (AllArray[0].length>count) {ip
// 過渡結果
count=AllArray[0].length;
result=AllArray[0];
}
}
}
return result;
}
function String_ArraySort(Arr){
return Arr.sort(function(str1,str2){
return str1.length-str2.length;
})
}
console.log(Longest(arr));
</script>字符串