2011-05-20 4 views
5

Je veux remplacer toutes les occurrences de [h2][/h2] dans une chaîne JavaScript Par exemple, jeRemplacer toutes les chaînes occurrences

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

Je veux obtenir -> HII

jusqu'à présent, j'essayé

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

'[' est un caractère spécial, vous auriez besoin d'échapper aussi. – pimvdb

+0

Copie possible de [Comment remplacer tous les points d'une chaîne en utilisant JavaScript] (http://stackoverflow.com/q/2390789/1529630), mais ici avec des crochets au lieu de points. – Oriol

Répondre

7

Vous devez échapper les accolades carrées.

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

Erreur: littéral d'expression régulière non terminé Code source: 'str = str.replace (/ \ [i \] [\/i \]/g, '');' – Sourav

+1

@Sourav: Vous avez oublié d'échapper à la 2e ouverture accolade carrée. –

+0

@Sourav: Vous devez ** échapper ** le ']' et '['. – pimvdb

2

En supposant rien entre ces balises, vous devez échapper à la [] aussi.

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

N'avez-vous pas à échapper à l'accolade carrée de fermeture? –

+1

Non, seulement [est réservé; si elle s'est échappée une suite] est juste un caractère régulier –

+0

Je ne m'en suis pas rendu compte. –

2

essayez celui-ci:

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

Notez que vous devez échapper [et] si elles font partie du texte que vous voulez remplacer sinon ils sont interprétés comme des marqueurs « de classe ».

Si le [h2] et [/ h2] pourrait également apparaître séparément, vous pouvez utiliser celui-ci:

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