Entfernen Sie alle ANSI-Farben/styles von strings

Ich nutzen Sie die Bibliothek, fügt ANSI-Farben /styles die Saiten. Zum Beispiel:

> "Hello World".rgb(255, 255, 255)
'\u001b[38;5;231mHello World\u001b[0m'
> "Hello World".rgb(255, 255, 255).bold()
'\u001b[1m\u001b[38;5;231mHello World\u001b[0m\u001b[22m'

Wenn ich das mache:

console.log('\u001b[1m\u001b[38;5;231mHello World\u001b[0m\u001b[22m')

einen "Hello World" weiß und Fett-Meldung ausgegeben wird.

Dass ein string wie '\u001b[1m\u001b[38;5;231mHello World\u001b[0m\u001b[22m' wie können diese Elemente entfernt werden?

foo('\u001b[1m\u001b[38;5;231mHello World\u001b[0m\u001b[22m') //=> "Hello World"

Vielleicht eine gute regulärer Ausdruck? Oder gibt es eine integrierte Funktion?


Die Arbeit, die ich dachte, war zu create child process:

require("child_process")
 .exec("node -pe \"console.error('\u001b[1m\u001b[38;5;231mHello World\u001b[0m\u001b[22m')\""
 , function (err, stderr, stdout) { console.log(stdout);
 });

Aber die Ausgabe ist die gleiche...

  • Sie sollten Kreide. Es prüft, für Farben, die aktiviert wird oder nicht, und wird automatisch Streifen ANSI-codes aus dem text.
  • Es geht nicht um Design, es geht um unstyling -- entfernen der ANSI Stile von strings. Zum färben verwende ich couleurs und für unstyling ich ansi-parser. Hoffe es ist jetzt klarer.
  • I use a library that adds ANSI colors / styles to strings Und ich werde sagen, indem Sie mit Kreide, können Sie entfernen Sie diese codes automatisch, wenn Sie so wählen (d.h. Sie können Stil und automatisch entfernen).
  • Ah, ich habe es. Ich dachte chalk ist nur für die Färbung. Von dem, was ich sehe, strip-ansi ist für diese verwendet, und Sie sind einer der Mitwirkenden. 🙂 Schön!
  • Ich jetzt bin; war nicht, als ich ursprünglich gepostet haha. Kam zurück und aktualisieren Sie die regex mit der, die ich schrieb für die ansi-regex.
  • Sie aktualisieren Ihre Antwort einschließlich der strip-ansi Paket. Ich mochte immer klein und Niedlich npm-Pakete. 🙂

Schreibe einen Kommentar