Javascript kullanarak bir karakteri bir dizeden nasıl kaldırabilirim?
Bunu almaya çok yaklaştım, ama bu doğru değil.
Tek yapmak istediğim bir dizeden r
karakterini kaldırmak.
Sorun şu ki, dizede birden fazla r
örneği var.
Ancak, her zaman dizin 4'teki karakterdir (yani 5. karakter).
örnek dize: crt/r2002_2
Ne istiyorum: crt/2002_2
Bu değiştirme işlevi hem r
mystring.replace(/r/g, '')
Üretir: ct/2002_2
Bu işlevi denedim:
String.prototype.replaceAt = function (index, char) {
return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')
Yalnızca başka bir karakterle değiştirirsem çalışıyor. Basitçe kaldırmayacaktır.
Bir fikrin var mı?
309
3
String.prototype.replace
](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) kullanarak
/ryerine
/` yazacaktır.Alternatif olarak regex'i global bir bayrakla kullanabilirsiniz (Erik Reppen & Sagar Gala, aşağıda önerildiği gibi) tüm oluşumları
EDIT: Herkes burada çok eğlendiğinden ve user1293504 açıklayıcı soruları yanıtlamak için yakın zamanda geri dönmeyecek gibi göründüğünden, işte bir dizeden N. karakteri kaldırmak için bir yöntem:
user1293504 sıfır indeksli bir sayım yerine normal sayımı kullandığından, indeksten 1'i çıkarmamız gerekir, eğer bunu
charAt'ın nasıl çalıştığını kopyalamak için kullanmak istiyorsanız, 3. satırdaki indeksten 1'i çıkarmayın ve bunun yerine
tmp.splice(i, 1)` kullanın.Her zaman dördüncü karakteri kaldıracağınızı biliyorsanız, her zaman dize işlevleri vardır:
char.length
sıfırdır. Bu durumda karakteri atlamak için
1` eklemeniz gerekir.