2013-03-06 65 views
1

我敢肯定這應該工作,但我不能讓它做什麼,我希望它:在字符串替換第N occurence - JavaScript的

new_str = old_str.replace(3, "a"); 
// replace index 3 (4th character) with the letter "a" 

所以,如果我有abcdef然後上面應該返回abcaef但我必須得到錯誤。它正在改變人物,但不是預期的人物。

本地JS或jQuery解決方案都很好,無論是最好的(我在該頁面上使用jQuery)。

我試過搜索,但所有的教程都談論正則表達式等,而不是索引替換的東西。

回答

2

你似乎想陣列式更換,因此字符串轉換爲數組:

// Split string into an array 
var str = "abcdef".split(""); 

// Replace char at index 
str[3] = "a"; 

// Output new string 
console.log(str.join("")); 
1

這裏有三種方法 - 其他

VAR old_str = 「ABCDEF」,

//1. 
new_str1= old_str.substring(0, 3)+'a'+old_str.substring(4), 

//2. 
new_str2= old_str.replace(/^(.{3}).(.*)$/, '$1a$2'), 

//3. 
new_str3= old_str.split(''); 
new_str3.splice(3, 1, 'a'); 

//返回值

new_str1+'\n'+new_str2+'\n'+ new_str3.join(''); 

abcaef 
abcaef 
abcaef