之前,如果我有串foo bar foo baz foo
,我想用abcd
更換foo
,我想替換的出現次數的偏移量的字符串([0, 8, 16]
在這個例子中)英寸何我能得到這個職位?獲取子的位置更換
Q
獲取子的位置更換
1
A
回答
3
var getPositions = function(str, sub) {
var arr=[], idx=-1;
while ((idx=str.indexOf(sub,idx+1)) > -1) {
arr.push(idx);
}
return arr;
};
getPositions('foo bar foo baz foo', 'foo'); // => [0, 8, 16]
2
如果我理解你以後,這應該爲你工作
var getPositions = function (find, str) {
var arr = [],
pos = 0,
flen = find.length,
len = str.length, i;
while (pos < len) {
i = str.indexOf(find, pos);
if (i !== -1) {
arr.push(i);
pos = i + flen;
} else {
return arr.length ? arr : false;
}
}
return arr.length ? arr : false;
};
然後調用它像getPositions("foo", whateverString);
2
您會考慮使用正則表達式?通過這種方式,您不需要爲尋找foo零件的位置而煩惱。如果你絕對需要職位,這個解決方案不適合你。
var str = 'foo bar foo baz foo';
str = str.replace(/foo/g,'abcd');
alert(str);
相關問題
- 1. 在jquery中獲取子div的位置
- 2. 獲取變換後的元素位置
- 3. 獲取元素的更新位置
- 4. 獲取更準確的位置
- 5. 無法獲取更新的位置
- 6. jQuery獲取元素的更新位置
- 7. 從位置獲取位置
- 8. 獲取位置
- 9. 獲取位置:\
- 10. 獲取位置
- 11. 正在獲取子SKSpriteNode位置
- 12. Google + API根據位置獲取帖子
- 13. 獲取裝配位置,GetAssembly()。位置或GetExecutingAssembly()位置更好。位置
- 14. 獲取設置位的位置C
- 15. 獲取元素的位置/位置
- 16. 從GcmListenerService獲取更新位置onMessageReceived
- 17. GPS沒有獲取位置更新
- 18. 從GPS獲取每個位置更新
- 19. 更新後如何獲取位置?
- 20. 每1小時獲取位置更新
- 21. 獲取許多位置更新
- 22. Xamarin android在位置更改前獲取位置
- 23. 更新用戶位置每10秒後 - 獲取位置表mysql
- 24. Xquery獲取位置()
- 25. 獲取位置VB.net
- 26. IOS獲取位置
- 27. 獲取GPS位置
- 28. 獲取列位置
- 29. Android獲取位置
- 30. 獲取templatetag位置
澄清,你的意思是*之前*替換或之後?如果你的意思是在*之後,那麼偏移量將會是[0,9,18] ...... – maerics 2011-06-15 20:26:55
@maerics:謝謝,我修正了它。但是將[[0,8,16]]轉換爲[0,9,18]並不是一個大問題:) – levu 2011-06-15 20:45:58