Hoe kan ik met Javascript een teken uit een string verwijderen?

Ik ben zo dichtbij om dit te krijgen, maar het is gewoon't goed. Alles wat ik wil doen is het karakter r uit een string verwijderen. Het probleem is, er is meer dan één instantie van r in de string. Het is echter altijd het karakter op index 4 (dus het 5e karakter).

voorbeeld string: crt/r2002_2

Wat ik wil: crt/2002_2

Deze vervangfunctie verwijdert zowel r

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

Produceert: ct/2002_2

Ik heb deze functie geprobeerd:

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

Het werkt alleen als ik het vervang door een ander teken. Het zal het niet gewoon verwijderen.

Iemand een idee?

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

zal /r vervangen door / met behulp van String.prototype.replace.

Als alternatief zou je regex met een globale vlag kunnen gebruiken (zoals voorgesteld door Erik Reppen & Sagar Gala, hieronder) om alle voorkomens te vervangen door

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

EDIT: Aangezien iedereen's zo veel plezier heeft hier en user1293504 niet snel lijkt terug te komen om verhelderende vragen te beantwoorden, hier's een methode om het Nde karakter uit een string te verwijderen:

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

Omdat user1293504 de normale telling gebruikte in plaats van een nul geïndexeerde telling, moeten we'1 van de index verwijderen, als je dit wilt gebruiken om te repliceren hoe charAt werkt, trek dan geen 1 af van de index op de 3e regel en gebruik in plaats daarvan tmp.splice(i, 1).

Commentaren (1)

Er zijn altijd nog de string functies, als je weet dat je altijd het vierde teken gaat verwijderen:

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

char.length is nul. Je moet in dit geval 1 toevoegen om het karakter over te slaan.

Commentaren (7)