js字符串处理 indexof

1_2_3_4_5
要获取_第三次出现位置该怎么写

递归
public int indexOf(String s1, String s2, int time){
if(time == 1)
return s1.indexOf(s2);
else
return s1.indexOf(s2, indexOf(s1, s2, time - 1) + 1);
}

s1 表示主串 s2 表示被匹配的串, time表示第几次出现

比如
indexOf("1_2_3_4_5", "_", 3);
结果为5
如果没有则返回-1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-21
我的办法比较麻烦。
分解字符串,遍历字符串,第三次出现时取得就OK
第2个回答  2013-02-21
var str = "1_2_3_4_5";
var arr = str.split("_");//分解字符串
var pos = 0;

for(var i = 0; i < 3; i++){
pos += arr[i].length + 1;//叠加出现之前的长度

}

alert("在" + pos + "处找到你");
第3个回答  2013-02-21
可以用正则表达式,如下测试通过
var re = /_/g;
var src = "1_2_3_4_5";
var count = 0;
while ((arr = re.exec(src)) != null) {
count++;
if (count == 3) {
alert(arr.index);
break;
}
}
希望能帮到你
相似回答