ToolActToolAct

Outil d'inversion de chaîne

Inverser rapidement les chaînes de texte avec plusieurs modes d'inversion

Entrée
Caractères: 0
Lignes: 0
Sortie
Caractères: 0
Lignes: 0

Sélectionner le mode d'inversion

Qu'est-ce que l'inversion de chaîne ?

String Reverse inverse l’ordre des caractères d’un texte et produit l’entrée à l’envers. L’idée paraît simple, mais le texte réel est plus subtil que des lettres ASCII: caractères Unicode, emoji, accents combinants, retours à la ligne, espaces et écritures de droite à gauche peuvent réagir différemment selon la façon de compter les caractères. L’outil sert aux expériences textuelles, vérifications de palindrome, petits jeux, débogage de chaînes, enseignement et repérage d’espaces ou suffixes cachés. Ce n’est pas une méthode de chiffrement ni un masquage sûr de données sensibles. Avec des emoji composés ou plusieurs code points, la sortie doit être vérifiée.

Mode d'emploi

Opérations de base

  1. Saisissez ou collez le texte à inverser dans la zone de saisie de gauche.
  2. Choisissez un mode d'inversion (tout inverser, inverser les mots, etc.).
  3. Le résultat inversé s'affiche automatiquement à droite.
  4. Cliquez sur « Copier » pour copier le résultat, ou sur « Intervertir » pour l'utiliser comme nouvelle entrée.

Traitement du texte

  • Inverser du texte brut est simple, mais les émojis, les signes diacritiques combinatoires et les écritures de droite à gauche peuvent donner un rendu visuel inattendu.
  • Pour du code, des URL ou des données structurées, n'inversez que le segment concerné au lieu d'inverser tout le texte aveuglément.

Cas d’utilisation

Inverser le texte à différents niveaux structurelsChoisissez l’inversion complète des caractères, l’inversion de l’ordre des mots, l’inversion de chaque mot, l’inversion de chaque ligne, l’inversion de l’ordre des lignes ou l’inversion de l’ordre des phrases. La sortie se met à jour à chaque modification de l’entrée et peut être réinjectée dans le panneau d’entrée. Choisir le bon niveau garde le résultat pertinent : inverser les mots mélange la liste, tandis qu’inverser chaque mot conserve chaque élément intact et n’en retourne que les lettres.
Tester les transformations de texte et les cas limitesLes modes au niveau du caractère utilisent la syntaxe spread, qui gère mieux de nombreux caractères Unicode qu’une simple inversion d’octets. Les modes ligne et mot préservent différentes parties des espaces blancs selon la transformation sélectionnée, ce qui en fait un outil pratique pour des expériences rapides sur les données. Coller des entrées complexes comme des lignes vides, des doubles espaces ou des tabulations finales révèle comment chaque mode gère les séparateurs invisibles.
Préparer des variantes de texte ludiques ou diagnostiquesInversez des noms, des listes, des phrases ou des lignes de log pour des puzzles, des données de test, des contrôles de mise en page et des comparaisons manuelles. Les compteurs de lignes et de caractères sur les deux panneaux aident à confirmer si la transformation a changé la structure ou uniquement l’ordre. Les deux comptages doivent correspondre entre l’entrée et la sortie pour une inversion pure, ce qui fait du contrôle numérique rapide un test fiable.
Vérifier les palindromes y compris les séquences d’emojiCollez une phrase et passez en inversion au niveau du caractère pour vérifier si elle se lit de la même manière dans les deux sens. L’approche basée sur le spread conserve les emoji multi-code point et les accents combinants comme des unités indivisibles, de sorte qu’une chaîne d’emoji drapeau arc-en-ciel inversée regroupe toujours correctement le drapeau. Un vrai palindrome doit retrouver sa forme d’origine après une seule passe d’inversion complète, ce qui constitue une vérification rapide pour une entrée qui semble symétrique mais ne l’est pas.
Inverser les emoji graphème et le texte bidi RTL de manière conscientePour des entrées comme ‘👨‍👩‍👧’ (un emoji familial composé de homme, ZWJ, femme, ZWJ, fille), une inversion naïve par octets scinde la séquence en glyphes cassés. Cet outil itère par cluster de graphème, de sorte qu’un emoji familial inversé reste intact au lieu de devenir ‘👧‍👩‍👨’. Pour les entrées en arabe ou en hébreu, l’ordre visuel de droite à gauche est préservé par le moteur de rendu ; l’inversion au niveau du caractère dans les données apparaîtra quand même inversée à l’écran, il convient donc de tester le résultat avec le rendu linguistique avant de conclure à un bug.

Principe technique

L'inversion au niveau du caractère utilise la syntaxe spread : [...str].reverse().join(''). L'opérateur spread itère la chaîne comme une séquence de points de code Unicode, ce qui gère correctement les caractères en dehors du plan multilingue de base qui occupent deux unités de code UTF-16 (paires de substitution). L'alternative naïve, str.split('').reverse().join(''), découpe en unités de code et corrompt tout emoji comme le party popper 🎉 (U+1F389), la fusée 🚀 (U+1F680) ou tout caractère supérieur à U+FFFF. Les clusters de graphèmes ajoutent une couche supplémentaire. Un caractère perçu par l'utilisateur comme le café avec un accent aigu combinant (a + ◌́), un emoji drapeau construit à partir de deux indicateurs régionaux, ou un emoji familial lié par ZWJ 👨‍👩‍👧 est composé de plusieurs points de code. L'inversion par point de code réarrange toujours les morceaux, de sorte que l'emoji familial devient trois silhouettes humaines séparées et l'accent se détache de la lettre de base. Intl.Segmenter avec granularity: 'grapheme' est la méthode conforme aux standards pour itérer les clusters de graphèmes et conserver ces séquences intactes lors de l'inversion. Au niveau de l'opération, le coût est O(n) en nombre de segments, où n est la longueur de la chaîne en points de code ou en graphèmes selon la segmentation choisie. Inverser deux fois donne la chaîne d'origine, ce qui rend la fonction utile pour les vérifications de palindrome. Pour les entrées riches en Unicode, la normalisation NFC (str.normalize('NFC')) avant l'inversion replie les séquences base + combinante en formes précomposées lorsqu'il en existe une, réduisant les surprises dans le résultat. Les écritures de droite à gauche comme l'arabe et l'hébreu sont stockées en ordre logique mais rendues de droite à gauche, de sorte qu'une chaîne arabe inversée apparaît quand même inversée bien que l'ordre des données ait été modifié.

  • Inversion par point de code : [...str].reverse().join('') itère par point de code et préserve les paires de substitution au-dessus de U+FFFF (la plupart des emoji)
  • Piège naïf des octets : str.split('').reverse().join('') découpe les unités de code UTF-16 et corrompt tout caractère supérieur à U+FFFF
  • Clusters de graphèmes : Intl.Segmenter({ granularity: 'grapheme' }) conserve les marques combinantes, les séquences de drapeaux et les emoji ZWJ 👨‍👩‍👧 intacts
  • Inversion au niveau du mot : split(/\s+/), reverse, join(' ') ; préserve chaque mot en interne et n'inverse que l'ordre
  • Complexité : O(n) où n est le nombre de segments ; inverser deux fois renvoie la chaîne d'origine
  • Normalisation NFC : str.normalize('NFC') replie les séquences combinantes en formes précomposées avant l'inversion lorsqu'il en existe une
  • Texte bidi : l'arabe et l'hébreu sont stockés en ordre logique ; la direction rendue est la couche BiDi du navigateur, séparée de l'inversion des données

Exemples

Inverser tous les caractères (basique)

Mode : Inverser tout
Entrée :  hello world
Sortie : dlrow olleh

Entrée :  12345
Sortie : 54321

Entrée :  A man a plan a canal Panama
Sortie : amanaP lanac a nalp a nam A

Inverser les mots vs inverser chaque mot

Entrée : The quick brown fox

Mode : Inverser les mots (ordre des mots uniquement)
-> fox brown quick The

Mode : Inverser chaque mot (lettres dans chaque mot)
-> ehT kciuq nworb xof

Vérification de palindrome

Entrée :  racecar
Inverser tout -> racecar    (identique, est un palindrome)

Entrée :  level
Inverser tout -> level       (palindrome)

Entrée :  hello
Inverser tout -> olleh       (PAS un palindrome)

Sécurité Unicode et emoji

Entrée :  cafe (avec accent aigu combiné sur e)
Inversion naïve : efac   (l'accent se détache de la lettre)
Sensible aux graphèmes : efac   (l'accent reste attaché)

Entrée :  séquence-emoji-famille-ZWJ
Inversion naïve : décomposée en 3 emojis distincts
Cet outil : conserve le cluster intact

Inverser l'ordre des lignes dans un fichier journal

Mode : Inverser l'ordre des lignes
Entrée :
  2026-06-10 09:00  startup
  2026-06-10 09:05  login ok
  2026-06-10 09:10  query slow

Sortie (plus récent en premier) :
  2026-06-10 09:10  query slow
  2026-06-10 09:05  login ok
  2026-06-10 09:00  startup

FAQ

Que fait l'inversion de chaîne ?

Elle retourne l'entrée avec les caractères en ordre inverse : « hello » → « olleh ». Utile pour des chiffres jouets de type ROT-13, vérifier des palindromes, générer du texte miroir, ou faire des démos rapides de manipulation de tableaux dans des tutoriels.

Inverse-t-elle correctement les emojis et le CJK ?

La plupart des caractères CJK et des emojis simples fonctionnent correctement car la page utilise l'opérateur de propagation ([...text]) qui gère les paires de substitution UTF-16. Les séquences emoji complexes (emojis famille, drapeaux, combinaisons de teinte de peau) peuvent se briser à l'inversion car elles sont composées de plusieurs points de code séparés.

Que se passe-t-il avec les accents combinatoires ?

Les caractères formés d'une lettre de base plus des marques combinatoires (e + accent aigu → é) s'inversent comme un seul graphème. Une saisie en forme décomposée peut nécessiter une normalisation préalable ; la page peut appliquer une normalisation NFC en entrée pour gérer cela. Le résultat visible pour le langage naturel est correct dans les deux cas.

En quoi l'inversion diffère-t-elle d'une image miroir ?

L'inversion porte sur l'ordre des caractères : « AB » → « BA ». Le miroir est un retournement visuel : « AB » affiché comme ⟨ƎA⟩, ce qui requiert une transformation CSS ou des caractères spéciaux. La page inverse l'ordre des caractères, pas un miroir de pixels. Pour un effet de texte miroir, utilisez CSS scaleX(-1).

Préserve-t-elle les sauts de ligne ?

Par défaut, l'entrée entière est inversée, retours à la ligne compris : la dernière ligne se retrouve en premier. Activez « inverser chaque ligne individuellement » pour inverser à l'intérieur des lignes tout en conservant l'ordre des lignes, utile pour des effets visuels sur du texte multi-lignes.

Le texte inversé est-il toujours lisible ?

Les langues qui se lisent de gauche à droite (anglais, chinois, japonais) deviennent illisibles une fois inversées. Les langues de droite à gauche (arabe, hébreu) peuvent devenir maladroitement lisibles mais sont aussi cassées car l'algorithme bidi entre en conflit avec l'inversion. L'inversion est surtout un exercice de code ou de casse-tête, pas une vraie transformation textuelle.

Mon texte est-il envoyé ?

Non. L'inversion s'exécute dans votre navigateur. Le texte collé n'est pas transmis.