| .Dd May 13, 2016 |
| .Dt jsesc 1 |
| .Sh NAME |
| .Nm jsesc |
| .Nd escape strings for use in JavaScript string literals |
| .Sh SYNOPSIS |
| .Nm |
| .Op Fl s | -single-quotes Ar string |
| .br |
| .Op Fl d | -double-quotes Ar string |
| .br |
| .Op Fl w | -wrap Ar string |
| .br |
| .Op Fl e | -escape-everything Ar string |
| .br |
| .Op Fl 6 | -es6 Ar string |
| .br |
| .Op Fl l | -lowercase-hex Ar string |
| .br |
| .Op Fl j | -json Ar string |
| .br |
| .Op Fl p | -object Ar string |
| .br |
| .Op Fl p | -pretty Ar string |
| .br |
| .Op Fl v | -version |
| .br |
| .Op Fl h | -help |
| .Sh DESCRIPTION |
| .Nm |
| escapes strings for use in JavaScript string literals while generating the shortest possible valid ASCII-only output. |
| .Sh OPTIONS |
| .Bl -ohang -offset |
| .It Sy "-s, --single-quotes" |
| Escape any occurrences of ' in the input string as \\', so that the output can be used in a JavaScript string literal wrapped in single quotes. |
| .It Sy "-d, --double-quotes" |
| Escape any occurrences of " in the input string as \\", so that the output can be used in a JavaScript string literal wrapped in double quotes. |
| .It Sy "-w, --wrap" |
| Make sure the output is a valid JavaScript string literal wrapped in quotes. The type of quotes can be specified using the |
| .Ar -s | --single-quotes |
| or |
| .Ar -d | --double-quotes |
| settings. |
| .It Sy "-6, --es6" |
| Escape any astral Unicode symbols using ECMAScript 6 Unicode code point escape sequences. |
| .It Sy "-e, --escape-everything" |
| Escape all the symbols in the output, even printable ASCII symbols. |
| .It Sy "-j, --json" |
| Make sure the output is valid JSON. Hexadecimal character escape sequences and the \\v or \\0 escape sequences will not be used. Setting this flag enables the |
| .Ar -d | --double-quotes |
| and |
| .Ar -w | --wrap |
| settings. |
| .It Sy "-o, --object" |
| Treat the input as a JavaScript object rather than a string. Accepted values are flat arrays containing only string values, and flat objects containing only string values. |
| .It Sy "-p, --pretty" |
| Pretty-print the output for objects, using whitespace to make it more readable. Setting this flag enables the |
| .It Sy "-l, --lowercase-hex" |
| Use lowercase for alphabetical hexadecimal digits in escape sequences. |
| .Ar -o | --object |
| setting. |
| .It Sy "-v, --version" |
| Print jsesc's version. |
| .It Sy "-h, --help" |
| Show the help screen. |
| .El |
| .Sh EXIT STATUS |
| The |
| .Nm jsesc |
| utility exits with one of the following values: |
| .Pp |
| .Bl -tag -width flag -compact |
| .It Li 0 |
| .Nm |
| successfully escaped the given string and printed the result. |
| .It Li 1 |
| .Nm |
| wasn't instructed to escape anything (for example, the |
| .Ar --help |
| flag was set); or, an error occurred. |
| .El |
| .Sh EXAMPLES |
| .Bl -ohang -offset |
| .It Sy "jsesc 'foo bar baz'" |
| Print an escaped version of the given string. |
| .It Sy echo\ 'foo bar baz'\ |\ jsesc |
| Print an escaped version of the string that gets piped in. |
| .El |
| .Sh BUGS |
| jsesc's bug tracker is located at <https://github.com/mathiasbynens/jsesc/issues>. |
| .Sh AUTHOR |
| Mathias Bynens <https://mathiasbynens.be/> |
| .Sh WWW |
| <https://mths.be/jsesc> |