Hvordan kan jeg fjerne et tegn fra en streng ved hjelp av Javascript?
Jeg er så nær å få dette, men det er bare ikke riktig.
Alt jeg ønsker å gjøre er å fjerne tegnet r
fra en streng.
Problemet er at det er mer enn én forekomst av r
i strengen.
Det er imidlertid alltid tegnet på indeks 4 (så det 5. tegnet).
eksempel på streng: crt/r2002_2
Hva jeg vil ha: crt/2002_2
Denne erstatningsfunksjonen fjerner begge r
ene
mystring.replace(/r/g, '')
Produserer: ct/2002_2
Jeg prøvde denne funksjonen:
String.prototype.replaceAt = function (index, char) {
return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')
Det fungerer bare hvis jeg erstatter det med et annet tegn. Det vil ikke bare fjerne det.
Noen ideer?
309
3
vil erstatte
/r
med/
ved hjelp avString.prototype.replace
.Alternativt kan du bruke regex med et globalt flagg (som foreslått av Erik Reppen og Sagar Gala, nedenfor) for å erstatte alle forekomster med
EDIT: Siden alle har det så gøy her og user1293504 ikke ser ut til å komme tilbake snart for å svare på oppklarende spørsmål, her er en metode for å fjerne det n-te tegnet fra en streng:
Siden user1293504 brukte den normale tellingen i stedet for en null-indeksert telling, må vi fjerne 1 fra indeksen, hvis du ønsker å bruke dette til å replikere hvordan
charAt
fungerer, ikke trekk 1 fra indeksen på 3. linje og bruktmp.splice(i, 1)
i stedet.Det er alltid strengfunksjonene, hvis du vet at du alltid kommer til å fjerne det fjerde tegnet:
char.length
er null. Du må legge til1
i dette tilfellet for å hoppe over tegn.