字符串如:“010110”,“100101” (全是六位的,不是二进制)现在要得到字符串里面所有“1”的位置,并返回成数字组,如:2,4,5; 1,4,6 请尽量使用ASP函数,或者javascript函数实现。1楼的加点注释吧。 2楼的不能成功实现。
<script type="text/javascript">/** *param str 解析的字符串 *param reg 查找的字符串 *return Array 返回数组 * *思路:从0位置开始查找第一个reg字符串,将位+1(javascript index从0开始 所以加1)添加到数组, * 从上一次查到的位置 开始继续查找下一个 如此循环 当本次查到的位置大于等与上一次的位置时跳出循环 */var getStringPositionArray=function(str,reg){var arr= new Array();var strLen=str.length;var cursor=0; while(cursor<strLen){ var pos=str.indexOf(reg,cursor); if(cursor>pos)break; cursor=pos+1; arr.push(pos+1); } return arr;}var btyeStr="010110";alert(getStringPositionArray(btyeStr,"1"));var btyeStr="100101";alert(getStringPositionArray(btyeStr,"1"));</script>
<script type="text/javascript">function getIndex(str){ var res = []; var index =index=str.indexOf("1"); while(index !=-1){ res[res.length]= index; index++; if(index<=str.length) index =index=str.indexOf("1",index); else break; } //显示结果 var show =""; for(var i=0;i<res.length;i++){ show+=res[i]; } alert(show); //返回结果 return res;}//测试getIndex("1011010");</script> 不好意思,刚才的代码有点问题,已经修改了。 我那个你没有加<script> 标签 吧,现在加了。