summaryrefslogtreecommitdiff
path: root/src/node_modules/js-string-escape/README.md
blob: 3147c1b346e8f31afa67cef24989e53bbcd69242 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# js-string-escape

[![Build Status](https://travis-ci.org/joliss/js-string-escape.png?branch=master)](https://travis-ci.org/joliss/js-string-escape)

Escape any string to be a valid JavaScript string literal between double
quotes or single quotes.

## Installation

```
npm install js-string-escape
```

## Example

If you need to generate JavaScript output, this library will help you safely
put arbitrary data in JavaScript strings:

```js
jsStringEscape = require('js-string-escape')

console.log('"' + jsStringEscape('Quotes (\", \'), newlines (\n), etc.') + '"')
// => "Quotes (\", \'), newlines (\n), etc."
```

In other words, given any string `s`, the following invariants hold:

```js
eval('"' + jsStringEscape(s) + '"') === s
eval("'" + jsStringEscape(s) + "'") === s
```

These `eval` expressions are safe with untrusted strings `s`.

Non-strings will be cast to strings.

## Compliance

This library has been checked against [ECMAScript
5.1](http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4) and tested
against all Unicode code points.

Note that the returned string is not necessarily valid JSON, since JSON
disallows control characters, and `\'` is illegal in JSON.