JavaScript用递归查找字符串中的字符,成功返回字符个数与下标,失败返回-1
<script> var str='abcdefabcdaba'; //a4,b3,c2,d2,e1,f1 //先手动数一下,方便调试验证 function Find(str,obj){ //str 为目标元素所在的字符串 //obj 为要查找的 字符 var point=[]; //创建一个数组,把找到的下标存进去 var pos=-1; //每次查找的起始位置 var i=0; //记录找到的个数 function find(str,obj){ pos=str.indexOf(obj,pos+1); //if(pos!=-1) //console.log('下标:'+pos); if( pos == -1 ) { //console.log('unfind'); //没找到 return i; } else { //console.log('找到一次'+obj); point.push(pos); ++i; return find(str,obj); } } var count = find(str,obj); if(count == 0) return -1; return count + ': '+point; } console.log(Find(str,'b')); </script>
我在这里选择查找‘b’ ,输出结果就是下面这样,是不是 so easy