Strings escapen en unescapen
Escape tekst voor een JSON- of JavaScript-string, een SQL-string, een CSV-veld, een reguliere expressie of een shellwoord, of maak het escapen ongedaan.
Codevoorbeelden
Kopieer deze voorbeelden naar je eigen project. Ze gebruiken alleen de standaardbibliotheek van de taal, dus er hoeft niets geïnstalleerd te worden.
const text = 'He said "hi"'
console.log(JSON.stringify(text).slice(1, -1))Wat het doet
Escapet tekst zodat die in een JSON- of JavaScript-string, een SQL-string, een CSV-veld, een reguliere expressie of een shellwoord kan staan, en maakt het escapen ongedaan. Elke notatie escapet precies de tekens die ze nodig heeft en geen andere.
Zo gebruik je het
- Typ of plak tekst, of sleep een tekstbestand erin.
- Kies waar de tekst heen gaat (JSON-string, JavaScript-string, SQL-string, CSV-veld, Reguliere expressie of Shellwoord) en of je wilt Escapen of Unescapen.
- Kopieer of download het resultaat, of gebruik Uitvoer als invoer gebruiken om het de volgende invoer te maken.
Voorbeelden
He said "it's fine" en een regeleinde escapen:
JSON geeft He said \"it's fine\"\n, SQL geeft He said "it''s fine" en de shell geeft 'He said "it'\''s fine"'.
Goed om te weten
- JSON en JavaScript escapen de backslash, het aanhalingsteken rond de string, regeleinden en stuurtekens. Unescapen leest
\n,\t,\uXXXXen dergelijke; JavaScript leest ook\xHHen\u{…}. - SQL verdubbelt het enkele aanhalingsteken. Dat is goed voor een literal die je met de hand schrijft; gebruik voor code gebonden parameters.
- Een CSV-veld staat alleen tussen aanhalingstekens als het een komma, een aanhalingsteken of een regeleinde bevat, en aanhalingstekens erin worden verdubbeld.
- Een shellwoord staat tussen enkele aanhalingstekens en een enkel aanhalingsteken erin wordt geschreven als
'\'', zodat niets erin wordt uitgebreid.
Waarom escapet elke notatie anders?
Elke syntaxis heeft zijn eigen speciale tekens. Een JSON-string heeft geëscapete aanhalingstekens, backslashes en stuurtekens nodig. Een SQL-string heeft alleen een verdubbeld enkel aanhalingsteken nodig. Een CSV-veld wordt tussen aanhalingstekens gezet als het een komma, aanhalingsteken of regeleinde bevat. Een reguliere expressie escapet haar operatoren en een shellwoord staat tussen enkele aanhalingstekens zodat niets erin wordt uitgebreid.
Veelgestelde vragen
Is escapen genoeg om SQL-injectie te stoppen?
Nee. Aanhalingstekens verdubbelen is wat deze tool laat zien en het is goed voor een literal in een query die je met de hand schrijft, maar het is geen verdediging voor code. Geef waarden door als gebonden parameters, zodat ze nooit deel van de SQL-tekst zijn.
Wat is het verschil tussen een JSON- en een JavaScript-string?
JSON staat maar enkele escapes toe en gebruikt altijd dubbele aanhalingstekens. JavaScript staat ook enkele aanhalingstekens, \x41 toe, en escapes in beide aanhalingsstijlen. Unescapen als JSON weigert dus reeksen die JavaScript wel zou accepteren.
Stuurt deze tool mijn tekst ergens naartoe?
Nee. Alles gebeurt in je browser. Wat je typt wordt nooit naar onze servers gestuurd.