2011-05-20 21 views
5

Ben Örneğin bir JavaScript dize içinde [h2][/h2] tüm tekrarlarını değiştirmek istiyor oluşumları, bendeğiştirin, tüm dize

var mystring = 'hii[h2][/h2]'; 

Almak istediğim var -> hii

şimdiye kadar ben

çalıştı
mystring.replace(/[h2][\/h2]/g, ""); 
+5

'[' özel bir karakterdir, siz de kaçmak gerekiyordu. – pimvdb

+0

Olası çoğaltması [JavaScript kullanarak bir dizede tüm noktaların nasıl değiştirileceği] (http://stackoverflow.com/q/2390789/1529630), ancak burada nokta yerine köşeli parantezler bulunmaktadır. – Oriol

cevap

7

Köşeli parantezlerden kurtulmanız gerekir. Bu etiketlerin arasındaki hiçbir şey varsayarsak

mystring.replace(/\[h2\]\[\/h2\]/g, ''); 
+0

Hata: sonlandırılmamış düzenli ifade değişmezi Kaynak Kodu: 'str = str.replace (/ \ [i \] [\/i \]/g, ''); – Sourav

+1

@Sourav: 2. açıktan kaçmayı unutmuşsunuz köşeli ayraç. –

+0

@Sourav: ** '' '' '' '' ve '' '** 'den * kaçmak zorundasınız. – pimvdb

2

, ayrıca [] kaçmak gerekir. Eğer onlar aksi takdirde "karakter sınıfı" işaretçi olarak yorumlanır değiştirmek istediğiniz metnin bir parçasını teşkil kaçamazdı [ve] zorunda

str.replace(/\[h2\]\[\/h2\]/g,""); 

not:

mystring.replace(/\[h2]\[\/h2]/g, ""); 
+0

Kapanış köşeli ayraçtan kaçmak zorunda değil misin? –

+1

Nope, sadece [ayrılmıştır; eğer bir sonradan kaçtıysa] sadece normal bir karakter olan –

+0

bunun farkında değildim. –

2

bu bir deneyin.

[h2] ve [/ h2] ayrıca ayrı görünebilir, bu birini kullanmak olsaydı:

str.replace(/\[\/?h2\]/g,""); 
İlgili konular