题目: 查找
‘http://write.blog.youkuaiyun.com/postedit,http://blog.youkuaiyun.com/ta_men/article/details/62042213‘字符串中’blog.youkuaiyun.com’在字符串中出现的位置,并显示到屏幕.
方法一 :
思路:
将’blog.youkuaiyun.com’作为match内容放在while循环的条件中,使用indexOf方法获得索引值,然后将’blog.youkuaiyun.com’替换为同等字符长度的字符,使indexOf方法往下走.
JS代码如下:
<script type="text/javascript">
var str = 'http://write.blog.youkuaiyun.com/postedit,http://blog.youkuaiyun.com/ta_men/article/details/62042213';
var show = []; //声明存放索引值的数组
while(str.match('blog.youkuaiyun.com')){ //判断是否包含查询字符串,true则进入循环
var index =str.indexOf('blog.youkuaiyun.com'); //将查询字符串出现的位置赋值给index
show.push(index); //将index放入show数组
str = str.replace('blog.youkuaiyun.com','-------------'); //将原查询字符替换,以便indexOf方法能往下继续查找
}
document.write(show);
</script>
方法二 :
思路 :
将’blog.youkuaiyun.com’作为split参数切割,得到不含’blog.youkuaiyun.com’的数组,再次切割数组中的每个元素,由于数组长度是一定的,因此用for循环进行数组长度的累加,得到查询字符串所在原字符的索引.
JS代码如下:
<script type="text/javascript">
var str = 'http://write.blog.youkuaiyun.com/postedit,http://blog.youkuaiyun.com/ta_men/article/details/62042213';
var select = 'blog.youkuaiyun.com' //将查询字符串赋值给变量
var re = str.split(select); //切割字符串
var sum = 0; //声明累计变量
var arr = []; //声明存放索引的数组
for (var i=0;i<re.length-1;i++) { //循环次数为数组长度-1
sum = sum + re[i].split('').length; //得到
arr[i]=sum; //存入数组
sum = sum +select.length; //切割后的字符长度少了select的长度,除了第一次不加和最后一次不加,后面都得加上
}
document.write(arr);
</script>
若有错漏,欢迎建议和指正.
如果您有更好的方式,期待与您的交流!