现在的位置: 首页 > 综合 > 正文

javascript模糊查询

2012年02月25日 ⁄ 综合 ⁄ 共 1490字 ⁄ 字号 评论关闭
<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>
 

抱歉!评论已关闭.