如何在一个字符串中依次查找每一个匹配子字符串位置
答案:1 悬赏:60 手机版
解决时间 2021-04-04 19:13
- 提问者网友:遁入空寂
- 2021-04-03 23:00
如何在一个字符串中依次查找每一个匹配子字符串位置
最佳答案
- 五星知识达人网友:掌灯师
- 2021-04-03 23:15
通过循环调用indexOf()或lastIndexOf()来找到所有匹配的子字符串。<br>上面两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果没有找到子字符串,则返回-1)。这两个方法的区别在于:indexOf()方法从字符串的开头向后搜索子字符串,而lastIndexOf()方法是从字符串的末尾向前搜索子字符串。<br>这两个方法都可以接收可选的第二个参数,表示从字符串中的那个位置开始搜索。换句话说,indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;lastIndexOf()类似。<br><br>var str = "I think of other ages that floated upon the stream of life and love and death";<br>var positions = new Array();<br>function searchSubStr(str,subStr){<br>var pos = str.indexOf(subStr);<br>while(pos>-1){<br>positions.push(pos);<br>pos = str.indexOf(subStr,pos+1);<br>}<br>}<br>searchSubStr(str,"o");<br>alert(positions);//8,11,29,37,51,64<br><br>这个例子通过不断增加indexOf()方法开始查找的位置,遍历了一个长字符串。在循环之外,首先找到了”o”在字符串中的初始位置;而进入循环后,则每次都给indexOf()传递上一次的位置加1。这样就确保了每次新搜索都从上一次找到的子字符串的后面开始。每次搜索返回的位置被保存在数组positions中,以便将来使用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯