2010-12-14 43 views
0

J'ai besoin d'aide et espère que quelqu'un peut me aider avec cette question:Regex New RegExp - Remplacer tout le texte au lieu de [GAME_NAME]

hturl = "\[game_name\]" 
var myregexp = new RegExp(hturl, "ig"); 
contentreplace = contentreplace.replace(myregexp, '\[game_namexxxx\]'); 

Le regex ci-dessus remplacer tout le texte comme celui-ci

[game_namexxxx] ll vous h [game_namexxxx] v [nom_du_xxxx] pour bri [nom_du_xxxx] [nom_du_xxxx] [nom du jeuxxxx] lo [nom du jeuxxxx] [nom du jeuxxxx] th [nom du jeuxxxx] o [nom du jeuxxxx] o [nom du jeuxxxx] vous pl [game_namexxxx] y [[nom du jeuxxxx] [nom du jeuxxxx] [nom du jeuxxxx] [nom du jeuxxxx] [nom du jeuxxxx] [nom du jeuxxxx] [nom du jeuxxxx] [jeu _namexxxx

au lieu de remplacer seulement [GAME_NAME] avec [game_namexxxx]

Merci

+0

S'il vous plaît afficher le texte original ainsi, il est impossible de trouver votre erreur regex si vous venez de montrer le résultat « cassé ». – Tomalak

Répondre

3

utilisation \\[ au lieu de \[.

\[ dans une chaîne littérale s'échappe [, de sorte que la chaîne littérale donnera la chaîne [.

alt text

+0

Salut Gabi - J'ai essayé d'utiliser \\ et ça n'a pas fonctionné - Alors vous avez mentionné le quelque chose et je l'ai essayé à nouveau ... et maintenant ça marche :-) Merci beaucoup - c'est apprécié! –

+0

@Gerald Ferreira vous êtes les bienvenus :) –

+1

+1 Pour voir le problème d'échappement. Je ne l'ai pas fait. ;) @Gerald: Si la regex est vraiment construite à partir d'une variable chaîne (comme le suggère le commentaire sous ma réponse), cette variable devrait être échappée par regex en premier ou la regex se rompre à un moment donné: 'var hturl = hturl.replace (/[-\\[\\]{}()*+?.,\\$$]/g, "\\ $ &");' – Tomalak