<script language="javascript" type="text/javascript">
//获取所有符合条件下元素,以数据型式返回,str:要查找的字符串,container:被查的数组
function GetAllLikeString(str,container)
{
var startChar=str.charAt(0);//开始字符
var strLen=str.length;//查找符串的长度
var curCon;
var isFind=false;//是否找到
var resultIndex=-1//如果是的话的那个索引
var returnvalue="";
for(var i=0;i<container.length;i++)
{
curCon=container[i];
for(var j=0;j<curCon.length;j++)
{
// alert(curCon.charAt(j));
if(curCon.charAt(j)==startChar)//如果匹配起始字符,开始查找
{
if(curCon.substring(j).substring(0,strLen)==str)//如果从j开始的字符与str匹配,那ok
{
returnvalue=returnvalue+curCon+"|";
}
}
}
}
if(returnvalue.length>1)
returnvalue=returnvalue.substring(0,returnvalue.length-1);
var returnvalue = returnvalue.split("|");
returnvalue.sort();
return returnvalue;
}
//获取模糊值的下标方法,最好Container是按字符排序的数组
function GetLikeStringUnderIndex(str,container)
{
var startChar=str.charAt(0);//开始字符
var strLen=str.length;//查找符串的长度
var curCon;
var isFind=false;//是否找到
var resultIndex=-1//如果是的话的那个索引
for(var i=0;i<container.length;i++)
{
curCon=container[i];
for(var j=0;j<curCon.length;j++)
{
// alert(curCon.charAt(j));
if(curCon.charAt(j)==startChar)//如果匹配起始字符,开始查找
{
// for(var k=0;k<strLen;k++)//看一下连续的几个字符是否存在
// {
// if(curCon.charAt[j+k]==str.charAt[k])
// }
if(curCon.substring(j).substring(0,strLen)==str)//如果从j开始的字符与str匹配,那ok
{
isFind=true;
return i;//匹配的那个下标
}
else
{
isFind=false;
return i;
}
}
}
}
return -1;
}
</script>
--测试
<script>
var a= ['abc','cde','def','jki','中国','环泽'];
//alert(GetLikeStringUnderIndex('bc',a));
var rval=GetAllLikeString('d',a);
for(var i=0;i<rval.length;i++)
{
alert(rval[i]);
}
</script>