Comment supprimer un caractère d'une chaîne de caractères en utilisant Javascript ?

Je suis sur le point de réussir, mais ça ne va pas. Tout ce que je voudrais faire, c'est supprimer le caractère " r " d'une chaîne de caractères. Le problème est qu'il y a plus d'une instance de r dans la chaîne. Cependant, il s'agit toujours du caractère à l'indice 4 (donc le 5e caractère).

Exemple de chaîne de caractères : crt/r2002_2

Ce que je veux : crt/2002_2

Cette fonction de remplacement supprime les deux r.

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

Produit : ct/2002_2.

J'ai essayé cette fonction :

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

Cela ne fonctionne que si je le remplace par un autre caractère. Elle ne le supprime pas simplement.

Avez-vous une idée ?

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

remplacera /r par / en utilisant String.prototype.replace.

Vous pouvez également utiliser une expression rationnelle avec un indicateur global (comme suggéré par Erik Reppen &amp ; Sagar Gala, ci-dessous) pour remplacer toutes les occurrences par

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

EDIT: Puisque tout le monde s'amuse beaucoup ici et que user1293504 ne semble pas vouloir revenir de sitôt pour répondre aux questions de clarification, voici une méthode pour supprimer le Nième caractère d'une chaîne :

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

Puisque user1293504 a utilisé le compte normal au lieu d'un compte à indexation nulle, nous devons enlever 1 de l'index, si vous souhaitez utiliser ceci pour reproduire la façon dont charAt fonctionne, ne soustrayez pas 1 de l'index sur la 3ème ligne et utilisez tmp.splice(i, 1) à la place.

Commentaires (1)

Il y a toujours les fonctions de chaîne de caractères, si vous savez que vous allez toujours supprimer le quatrième caractère :

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

char.length est zéro. Vous devez ajouter 1 dans ce cas afin de sauter le caractère.

Commentaires (7)