Javascriptを使って文字列から文字を削除するにはどうすればいいですか?

もう少しで完成しそうなのですが、どうもうまくいきません。 私がやりたいのは、文字列から文字rを削除することです。 問題は、文字列の中に r のインスタンスが1つ以上あることです。 しかし、それは常にインデックス4(つまり5文字目)の文字です。

文字列の例です。crt/r2002_2

欲しいもの: crt/2002_2

この置換関数は、r の両方を削除します。

mystring.replace(/r/g, '')

結果: ct/2002_2 を生成

この関数を試してみました。

String.prototype.replaceAt = function (index, char) {
    return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')

別の文字に置き換えた場合のみ動作します。単純に削除することはできません。

何か考えはありますか?

var mystring = "crt/r2002_2";
mystring = mystring.replace('/r','/');

は、String.prototype.replaceを使って、/r/に置き換えます。

別の方法として、グローバルフラグ付きのregexを使用して(下記のErik Reppen &; Sagar Galaが提案するように)、すべての出現箇所を

mystring = mystring.replace(/\/r/g, '/');

EDIT: みんながここでとても楽しんでいて、user1293504が明確な質問に答えるためにすぐに戻ってくるとは思えないので、ここでは文字列からN番目の文字を削除する方法を紹介します。

String.prototype.removeCharAt = function (i) {
    var tmp = this.split(''); // convert to an array
    tmp.splice(i - 1 , 1); // remove 1 element from the array (adjusting for non-zero-indexed counts)
    return tmp.join(''); // reconstruct the string
}

console.log("crt/r2002_2".removeCharAt(4));

もしこれを使って charAt の動作を再現したいのであれば、3行目のインデックスから1を引かずに、代わりに tmp.splice(i, 1) を使ってください。

解説 (1)

常に4文字目を削除することが分かっているのであれば、文字列関数があります。

str.slice(0, 4) + str.slice(5, str.length))
解説 (2)
return this.substr(0, index) + char + this.substr(index + char.length);

char.length がゼロです。この場合、文字をスキップするためには 1 を追加する必要があります。

解説 (7)