SORU
17 Temmuz 2009, Cuma


JavaScript bir dize tüm tekrarlarını değiştirmek

Bu dize var:

Test abc test test abc test test
test abc test test abc 

Yapıyor

str = str.replace('abc', '');

sadece dize abc yukarıda. ilk geçtiği kaldırmak gibi görünüyor Nasıl replace edebilirimtümbu olaylar?

CEVAP
17 Temmuz 2009, Cuma


str = str.replace(/abc/g, '');

Yanıt olarak yorum için:

var find = 'abc';
var re = new RegExp(find, 'g');

str = str.replace(re, '');

Click Upvote'In yorum, daha da basitleştirmek: . yanıt olarak

function replaceAll(find, replace, str) {
  return str.replace(new RegExp(find, 'g'), replace);
}

Not:Düzenli ifadeler (meta) özel karakterler içeren, ve gibi tehlikeli körü körüne ön işleme bu karakterleri kaçmak için yukarıda find işlev bir bağımsız değişken geçirmek. Bu Mozilla Developer Network'ler aşağıdaki programı sundukları JavaScript Guide on Regular Expressions fonksiyon: . kaplıdır

function escapeRegExp(string) {
    return string.replace(/([.* ?^=!:${}()|\[\]\/\\])/g, "\\$1");
}

Daha güvenli yukarıda replaceAll işlevi yapmak için, eğer sen de escapeRegExp eklerseniz aşağıdaki gibi modifiye edilebilir:

function replaceAll(string, find, replace) {
  return string.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • MkElite

    MkElite

    13 NİSAN 2012
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009