2011-04-20 2 views
0

S'il vous plaît, aidez-moi. J'ai une variable lang et je sais que après cette variable doit aller caractères -(.+); Par exemple, je l'aurais écrit en C# donc - regexString = lang + "-(.+);"; Mais en javascript ce code n'est pas correct: str1 = str1.replace(lang+"-(.+);", replacement); car il faut utiliser /.../ , mais je ne sais pas comment écrire correctementRegex en javascript

Répondre

1

Il y a une façon dynamique pour créer des expressions rationnelles en javascript: (. J'ai aussi échappé à la -)

new RegExp(lang+'\-(.+)') 

donc, pour faire remplacer :

str.replace(new Regexp(lang+'\-(.+)'), replacement) 

Si vous voulez remplacer plus de 1:

str.replace(new Regexp(lang+'\-(.+)', 'g'), replacement) 

Le drapeau 'g' est pour 'global'.

+2

Pourquoi vous échapper '-' en dehors d'une classe de personnage? – ThiefMaster

+1

Parce que si vous échappez toujours au '-', vous n'oublierez jamais. C'est comme ça qu'on m'a appris =) – Rudie

+0

bon point. C'est comme ça que j'aime le faire aussi - ne jamais vouloir accidentellement oublier d'échapper à un tableau de bord ou à un autre symbole et passer les prochains jours à arracher les cheveux. –

0

Essayez ceci:

var re = new RegExp(lang+"-(.+);"); 
str1 = str1.replace(re, replacement);