CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet résolu : [JS] Regexp: vérifier présence caractère(s) sans le(s) capturer

DébutPage précedente
1
Page suivantePage suivante
RainbowShy RainbowShy
MP
Niveau 10
22 janvier 2017 à 00:13:43

Bonjour,
Je n'arrive pas à faire ça avec Regexp, alors que c'est une fonctionnalité qui me paraît bête et utile. Alors je me demande si elle existe ou non, ou s'il y a moyen de la simuler.
Dans mon cas précis, je veux remplacer les suites d'espaces par un unique espace, je sais bien que je pourrais faire ça :

chaine.replace(/\s+/g, ' ')

Mais dans d'autres cas, je souhaite par exemple remplacer un nombre qui suit des lettres, mais laisser ces lettres intactes :

chaine.replace(/!([A-Za-z]+)\d+/g, nvchaine)

(en imaginant que !(x) vérifie que x est là sans le prendre en compte pour le retour)
J'aimerais bien savoir comment résoudre le problème. :(

WatchItBurn WatchItBurn
MP
Niveau 10
22 janvier 2017 à 13:03:48

Tu peux faire comme ça :

chaine.replace(/([A-Za-z]+)\d+/g, "$1 patate")

Le $1 référence le premier groupe capturant de la regex, à savoir ce qui est entre parenthèses.

RainbowShy RainbowShy
MP
Niveau 10
22 janvier 2017 à 14:30:20

Merci! :ok:

lisarael lisarael
MP
Niveau 13
22 janvier 2017 à 16:03:16

Dans les RegExp en JavaScript, tu as la possibilité d'utiliser (?:…), qui sont les non-capturing group, donc exactement ce que tu cherchais (la solution de WatchItBurn fonctionne aussi, bien sûr).

cf. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references

RainbowShy RainbowShy
MP
Niveau 10
22 janvier 2017 à 17:28:25

J'ai essayé mais ça ne fonctionnait pas... en fait je m'en servais mal, la version française de la page (ça m'apprendre à lire les traductions foireuses du site...) n'indique pas qu'il faut utiliser $1 pour "recoller" la sous-chaîne non-capturée. ^^

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Thymotep
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment