Strings escapen und unescapen
Escape Text für einen JSON- oder JavaScript-String, einen SQL-String, ein CSV-Feld, einen regulären Ausdruck oder ein Shell-Wort oder mache das Escapen rückgängig.
Codebeispiele
Kopieren Sie diese Beispiele in Ihr eigenes Projekt. Sie verwenden nur die Standardbibliothek der Sprache, es muss also nichts installiert werden.
const text = 'He said "hi"'
console.log(JSON.stringify(text).slice(1, -1))Was es tut
Escapt Text, damit er in einen JSON- oder JavaScript-String, einen SQL-String, ein CSV-Feld, einen regulären Ausdruck oder ein Shell-Wort passt, und macht das Escapen rückgängig. Jedes Format escapt genau die Zeichen, die es braucht, und keine anderen.
So benutzt du es
- Tippe oder füge Text ein oder ziehe eine Textdatei hinein.
- Wähle, wohin der Text soll (JSON-String, JavaScript-String, SQL-String, CSV-Feld, Regulärer Ausdruck oder Shell-Wort) und ob du Escapen oder Unescapen willst.
- Kopiere oder lade das Ergebnis herunter oder nutze Ausgabe als Eingabe verwenden, um es zur nächsten Eingabe zu machen.
Beispiele
He said "it's fine" und einen Zeilenumbruch escapen:
JSON ergibt He said \"it's fine\"\n, SQL ergibt He said "it''s fine" und die Shell ergibt 'He said "it'\''s fine"'.
Gut zu wissen
- JSON und JavaScript escapen den Backslash, das Anführungszeichen um den String, Zeilenumbrüche und Steuerzeichen. Unescapen liest
\n,\t,\uXXXXund Ähnliches; JavaScript liest auch\xHHund\u{…}. - SQL verdoppelt das einfache Anführungszeichen. Das stimmt für ein von Hand geschriebenes Literal; für Code nutze gebundene Parameter.
- Ein CSV-Feld steht nur in Anführungszeichen, wenn es Komma, Anführungszeichen oder Zeilenumbruch enthält, und Anführungszeichen darin werden verdoppelt.
- Ein Shell-Wort steht in einfachen Anführungszeichen, und ein einfaches Anführungszeichen darin wird als
'\''geschrieben, damit nichts darin expandiert wird.
Warum escapt jedes Format anders?
Jede Syntax hat eigene Sonderzeichen. Ein JSON-String braucht escapte Anführungszeichen, Backslashes und Steuerzeichen. Ein SQL-String braucht nur das verdoppelte einfache Anführungszeichen. Ein CSV-Feld wird in Anführungszeichen gesetzt, wenn es Komma, Anführungszeichen oder Zeilenumbruch enthält. Ein regulärer Ausdruck escapt seine Operatoren, und ein Shell-Wort steht in einfachen Anführungszeichen, damit nichts darin expandiert wird.
Häufige Fragen
Reicht Escapen, um SQL-Injection zu verhindern?
Nein. Anführungszeichen zu verdoppeln zeigt dieses Werkzeug, und es stimmt für ein Literal in einer von Hand geschriebenen Abfrage, ist aber keine Abwehr für Code. Übergib Werte stattdessen als gebundene Parameter, damit sie nie Teil des SQL-Texts sind.
Was ist der Unterschied zwischen einem JSON- und einem JavaScript-String?
JSON erlaubt nur wenige Escapes und nutzt immer doppelte Anführungszeichen. JavaScript erlaubt auch einfache Anführungszeichen, \x41 und Escapes in beiden Anführungsstilen. Unescapen als JSON lehnt daher Folgen ab, die JavaScript akzeptieren würde.
Sendet dieses Werkzeug meinen Text irgendwohin?
Nein. Alles passiert in deinem Browser. Was du eingibst, wird nie an unsere Server gesendet.