88 votes

Remplacer un groupe de capture Regex par des majuscules en Javascript

J'aimerais savoir comment remplacer un groupe de capture par sa majuscule en JavaScript. Voici une version simplifiée de ce que j'ai essayé jusqu'à présent qui ne fonctionne pas :

 > a="foobar"
'foobar'
> a.replace( /(f)/, "$1".toUpperCase() )
'foobar'
> a.replace( /(f)/, String.prototype.toUpperCase.apply("$1") )
'foobar'

Pouvez-vous expliquer ce qui ne va pas avec ce code ?

12voto

CallMeLaNN Points 1945

Ancien message mais cela vaut la peine d'étendre la réponse @ChaosPandion pour d'autres cas d'utilisation avec RegEx plus restreint. Par exemple, assurez-vous que le (f) ou le groupe de capture est entouré d'un format spécifique /z(f)oo/ :

 > a="foobazfoobar"
'foobazfoobar'
> a.replace(/z(f)oo/, function($0,$1) {return $0.replace($1, $1.toUpperCase());})
'foobazFoobar'
// Improve the RegEx so `(f)` will only get replaced when it begins with a dot or new line, etc.

Je veux juste souligner les deux paramètres de function permettent de trouver un format spécifique et de remplacer un groupe de capture dans le format.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X