További
Hogyan tudok egy karaktert eltávolítani egy karakterláncból Javascript segítségével?
Annyira közel vagyok ahhoz, hogy megszerezzem ezt, de ez egyszerűen nem jó. Csak az "r" karaktert szeretném eltávolítani egy karakterláncból. A probléma az, hogy az "r" több példányban is szerepel a karakterláncban. Ez azonban mindig a 4-es indexű karakter (tehát az 5. karakter).
példa string: crt/r2002_2_2
Amit akarok: crt/2002_2
Ez a cserefüggvény eltávolítja mind az r
, mind a
mystring.replace(/r/g, '')
Eredménye: ct/2002_2
Ezt a függvényt próbáltam ki:
String.prototype.replaceAt = function (index, char) {
return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')
Csak akkor működik, ha más karakterrel helyettesítem. Egyszerűen nem távolítja el.
Valami ötlet?
309
3
a [
/r
-t/
-vel helyettesíti aString.prototype.replace
segítségével.Alternatívaként használhatod a regexet egy globális flaggel (ahogy azt Erik Reppen & Sagar Gala javasolta, lentebb), hogy minden előfordulást kicserélj a következővel
EDIT: Mivel itt mindenki olyan jól szórakozik, és úgy tűnik, hogy user1293504 nem jön vissza egyhamar, hogy válaszoljon a tisztázó kérdésekre, íme egy módszer az N-edik karakter eltávolítására egy karakterláncból:
Mivel a user1293504 a nullás indexű számolás helyett a normál számolást használta, nekünk've el kell távolítanunk az indexből 1-et, ha ezt akarod használni a
charAt
működésének megismétlésére, akkor ne vonj le 1-et az indexből a 3. sorban, hanem használd helyette atmp.splice(i, 1)
t.Mindig ott vannak a karakterláncfüggvények, ha tudod, hogy mindig el fogod távolítani a negyedik karaktert:
char.length
nulla. Ebben az esetben1
kell hozzáadni, hogy kihagyjuk a karaktert.