Ich bin so nah dran, dies zu bekommen, aber es ist einfach nicht richtig. Ich möchte nur das Zeichen "r" aus einer Zeichenkette entfernen. Das Problem ist, dass es mehr als eine Instanz von "r" in der Zeichenfolge gibt. Es ist jedoch immer das Zeichen an Index 4 (also das 5. Zeichen).
Beispiel-String: crt/r2002_2
Was ich will: crt/2002_2
Diese Ersetzungsfunktion entfernt beide r
mystring.replace(/r/g, '')
Ergibt: 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.
Irgendwelche Ideen?
var mystring = "crt/r2002_2";
mystring = mystring.replace('/r','/');
ersetzt /r
durch /
unter Verwendung von String.prototype.replace
.
Alternativ können Sie regex mit einem globalen Flag verwenden (wie von Erik Reppen & Sagar Gala vorgeschlagen, unten), um alle Vorkommen mit
mystring = mystring.replace(/\/r/g, '/');
EDIT: Da alle hier so viel Spaß haben und user1293504 anscheinend nicht so bald zurückkommt, um klärende Fragen zu beantworten, hier eine Methode, um das N-te Zeichen aus einem String zu entfernen:
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));
Da user1293504 die normale Zählung anstelle einer Null-indizierten Zählung verwendet hat, müssen wir 1 aus dem Index entfernen. Wenn Sie dies verwenden möchten, um zu replizieren, wie charAt
funktioniert, subtrahieren Sie nicht 1 vom Index in der dritten Zeile und verwenden Sie stattdessen tmp.splice(i, 1)
.
Es gibt immer die String-Funktionen, wenn Sie wissen, dass Sie immer das vierte Zeichen entfernen werden:
str.slice(0, 4) + str.slice(5, str.length))
return this.substr(0, index) + char + this.substr(index + char.length);
char.length" ist Null. In diesem Fall müssen Sie 1
hinzufügen, um das Zeichen zu überspringen.