¿Cómo puedo eliminar un carácter de una cadena utilizando Javascript?

Estoy muy cerca de conseguir esto, pero simplemente no está bien. Todo lo que me gustaría hacer es eliminar el carácter r de una cadena. El problema es que hay más de una instancia de r en la cadena. Sin embargo, siempre es el carácter en el índice 4 (por lo que el quinto carácter).

Ejemplo de cadena: crt/r2002_2

Lo que quiero: crt/2002_2.

Esta función de sustitución elimina tanto r como

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

Produce: ct/2002_2

He probado esta función:

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

Sólo funciona si lo sustituyo por otro carácter. No lo elimina simplemente.

¿Alguna idea?

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

sustituirá /r por / utilizando String.prototype.replace.

También puede utilizar regex con una bandera global (como sugieren Erik Reppen & Sagar Gala, más abajo) para reemplazar todas las ocurrencias con

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

EDIT: Ya que todo el mundo se está divirtiendo mucho aquí y user1293504 no parece que vaya a volver pronto para responder a las preguntas de aclaración, aquí'hay un método para eliminar el enésimo carácter de una cadena:

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));

Dado que user1293504 utilizó el recuento normal en lugar de un recuento con índice cero, tenemos que quitar 1 del índice, si desea utilizar esto para replicar cómo funciona charAt no reste 1 del índice en la tercera línea y utilice tmp.splice(i, 1) en su lugar.

Comentarios (1)

Siempre están las funciones de cadena, si sabes que siempre vas a eliminar el cuarto carácter:

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

char.length es cero. En este caso hay que añadir 1 para saltar el carácter.

Comentarios (7)