Daugiau
Kaip pašalinti simbolį iš eilutės naudojant "Javascript"?
Esu taip arti to, kad tai gausiu, bet tai tiesiog negerai.
Norėčiau tik pašalinti simbolį r
iš eilutės.
Problema ta, kad eilutėje yra daugiau nei vienas r
egzempliorius.
Tačiau tai visada yra 4 indekso simbolis (taigi, penktasis simbolis).
pavyzdys eilutė: crt/r2002_2
Ko aš noriu: crt/2002_2
Ši pakeitimo funkcija pašalina abu r
mystring.replace(/r/g, '')
Gaunama: ct/2002_2
Išbandžiau šią funkciją:
String.prototype.replaceAt = function (index, char) {
return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')
Ji veikia tik tada, kai jį pakeičiu kitu simboliu. Ji jo tiesiog nepašalina.
Ką galvojate?
309
3
pakeis
/r
į/
naudodamasString.prototype.replace
.Arba galite naudoti regex su globalia žyme (kaip siūlo Erik Reppen & Sagar Gala, toliau), kad pakeistumėte visus pasikartojimus su
EDIT: Kadangi visiems čia taip smagu, o user1293504, atrodo, greitai negrįš atsakyti į patikslinančius klausimus, pateikiame N-tojo simbolio pašalinimo iš eilutės metodą:
Kadangi vartotojas 1293504 naudojo įprastą skaičiavimą, o ne skaičiavimą su nuliniu indeksu, turime iš indekso atimti 1. Jei norite naudoti šį metodą, norėdami atkartoti, kaip veikia
charAt
, neatimkite 1 iš indekso 3 eilutėje, o naudokitetmp.splice(i, 1)
.Jei žinote, kad visada ketinate pašalinti ketvirtąjį simbolį, visada galite pasinaudoti eilutės funkcijomis:
char.length
yra nulis. Šiuo atveju, norint praleisti simbolį, reikia pridėti1
.