<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>