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

  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011
  • TotalSeminarsChannel

    TotalSeminar

    16 Mart 2010