Remplacer une Regex groupe de capture avec des majuscules en Javascript

Je voudrais savoir comment faire pour remplacer un groupe de capture avec ses majuscules dans le code 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'

Voulez-vous expliquer quel est le problème avec ce code?

  • ne pas supprimer un composant d'une question. Je veux savoir pourquoi mon code est la faute de trop.
  • Evan, je pensais que j'étais en étant respectueux de votre question. J'ai seulement enlevé des choses qui lui semblaient inutiles. Depuis que vous avez donné le code que vous étiez en train, et il est évident qu'elle ne fonctionnait pas, alors les gens implicitement savais que vous besoin d'une explication de pourquoi sans avoir à le dire (et maladroitement). Juste essayer d'aider! 🙂
  • Evan, est-ce mieux? Je ne veux pas l'embêter. Si vous rollback encore une fois je ne vais pas éditer à nouveau, mais pourriez-vous au moins de conserver le titre & tag édite en place?
  • Techniquement, je ne suis pas à l'aide de Javascript à tous, je suis en utilisant v8 (ECMAScript). Mais, j'imagine que la plupart des gens à la recherche, ce sera à la recherche pour le JavaScript, donc je suis bien avec elle.
  • N'hésitez pas à ajouter des balises de retour si vous pensez qu'ils appartiennent.
  • et pour la postérité: Il est tout à fait possible d'appeler v8 de mise en œuvre de ECMAscript "JavaScript" même si techniquement c'est un abus de langage. Faire la distinction pour tous les cas où il n'était pas Netscape ou Mozilla mise en œuvre serait juste de prendre trop de temps et il n'y a vraiment pas de jolie façon de prononcer "ECMAscript" avec moins de 5 maladroit syllabes. Ne pas oublier que vous pouvez soutenir techniquement l'ECMA spec, mais n'ont toujours quelque chose d'assez différent de JavaScript ou JScript ou que ce soit Chrome/V8 appelle leur version en sorte qu'il n'affirmer que nous sommes au moins dans la même famille d'ECMAscript.
  • Je suis en désaccord. C'est source de confusion et de leur permettre de continuer rend la question encore plus confus. Le Javascript n'toutes sortes de trucs cool Ecmascript qui ne fonctionne pas. Java, Eck-Ma -- pas sûr que la syllabe différence. Confondre les deux est l'équivalent de l'appel de C, un sous-ensemble de C++, C++.
  • Un aspect déroutant de cette question a été pour moi que la question est un cas particulier, où le groupe est également à l'ensemble appariés expression. Si ce n'est pas le cas, les réponses ont des résultats inattendus, parce qu'elles traitent l'ensemble du match.

InformationsquelleAutor Evan Carroll | 2011-05-26