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?
var mystring = "crt/r2002_2";
mystring = mystring.replace('/r','/');
a [/r
-t /
-vel helyettesíti a String.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
mystring = mystring.replace(/\/r/g, '/');
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:
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));
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 a tmp.splice(i, 1)
t.
Mindig ott vannak a karakterláncfüggvények, ha tudod, hogy mindig el fogod távolítani a negyedik karaktert:
str.slice(0, 4) + str.slice(5, str.length))
return this.substr(0, index) + char + this.substr(index + char.length);
char.length
nulla. Ebben az esetben 1
kell hozzáadni, hogy kihagyjuk a karaktert.