529 Stimmen

Wie kann ich mit JavaScript ein Zeichen aus einer Zeichenkette entfernen?

Ich bin so kurz davor, es zu bekommen, aber es ist einfach nicht richtig. Alles, was ich tun möchte, ist, das Zeichen zu entfernen r aus einer Zeichenkette. Das Problem ist, es gibt mehr als eine Instanz von r in der Zeichenkette. Es ist jedoch immer das Zeichen bei Index 4 (also das 5. Zeichen).

Beispiel-String: crt/r2002_2

Was ich will: crt/2002_2

Diese Ersetzungsfunktion beseitigt sowohl r

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

Produziert: ct/2002_2

Ich habe diese Funktion ausprobiert:

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

Es funktioniert nur, wenn ich es durch ein anderes Zeichen ersetze. Es wird nicht einfach entfernt.

Haben Sie eine Idee?

16voto

Sagar Gala Punkte 934

Für die globale Ersetzung von '/r' hat dieser Code bei mir funktioniert.

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

11voto

Kamil Kiełczewski Punkte 69048

Dies ist eine Verbesserung der einfachste Antwort (Länge weglassen)

s.slice(0, 4) + s.slice(5)

let s = "crt/r2002_2";
let o = s.slice(0, 4) + s.slice(5);
let delAtIdx = (s, i) => s.slice(0, i) + s.slice(i + 1); // this function remove letter at index i

console.log(o);
console.log(delAtIdx(s, 4));

8voto

Nazariy Punkte 406
let str = '1234567';
let index = 3;
str = str.substring(0, index) + str.substring(index + 1);
console.log(str) // 123567 - number "4" under index "3" is removed

7voto

Eugene Retunsky Punkte 12771
return this.substr(0, index) + char + this.substr(index + char.length);

char.length Null ist. Sie müssen Folgendes hinzufügen 1 in diesem Fall, um das Zeichen zu überspringen.

6voto

Matt S Punkte 149

Vielleicht bin ich ein Laie, aber ich bin heute auf die hier gestoßen, und sie scheinen alle unnötig kompliziert zu sein.

Hier ist eine (für mich) einfachere Methode, das Gewünschte aus einer Zeichenkette zu entfernen.

function removeForbiddenCharacters(input) {
let forbiddenChars = ['/', '?', '&','=','.','"']

for (let char of forbiddenChars){
    input = input.split(char).join('');
}
return input

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X