string-escape
v0.3.0
Published
A JavaScript library for escaping JavaScript strings while generating the shortest possible valid output.
Downloads
12,958
Readme
JavaScript string escape
This is a JavaScript library for escaping JavaScript strings while generating the shortest possible valid output.
Feel free to fork if you see possible improvements!
Installation
In a browser:
<script src="string-escape.js"></script>
Via npm:
npm install string-escape
In Narwhal, Node.js, and RingoJS:
var stringEscape = require('string-escape');
In Rhino:
load('string-escape.js');
Using an AMD loader like RequireJS:
require(
{
'paths': {
'string-escape': 'path/to/string-escape'
}
},
['string-escape'],
function(stringEscape) {
console.log(stringEscape);
}
);
API
stringEscape(string, options)
This function takes a string and returns an escaped version of the string where any characters that are not printable ASCII symbols are escaped using the shortest possible (but valid) escape sequences for use in JavaScript strings.
stringEscape('Ich ♥ Bücher');
// → 'Ich \\u2665 B\\xFCcher'
stringEscape('foo 𝌆 bar');
// → 'foo \\uD834\\uDF06 bar'
The optional options
argument accepts an object with the following options:
quotes
The default value for the quotes
option is 'single'
. This means that any occurences of '
in the input string will be escaped as \'
, so that the output can be used in a string literal wrapped in single quotes.
stringEscape('Lorem ipsum "dolor" sit \'amet\' etc.');
// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.'
stringEscape('Lorem ipsum "dolor" sit \'amet\' etc.', {
'quotes': 'single'
});
// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.'
// → "Lorem ipsum \"dolor\" sit \\'amet\\' etc."
If you want to use the output as part of a string literal wrapped in double quotes, set the quotes
option to 'double'
.
stringEscape('Lorem ipsum "dolor" sit \'amet\' etc.', {
'quotes': 'double'
});
// → 'Lorem ipsum \\"dolor\\" sit \'amet\' etc.'
// → "Lorem ipsum \\\"dolor\\\" sit 'amet' etc."
stringEscape.version
A string representing the semantic version number.
Support
This library has been tested in at least Chrome 27-29, Firefox 3-22, Safari 4-6, Opera 10-12, IE 6-10, Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.9, PhantomJS 1.9.0, and Rhino 1.7RC4.
Unit tests & code coverage
After cloning this repository, run npm install
to install the dependencies needed for development and testing. You may want to install Istanbul globally using npm install istanbul -g
.
Once that’s done, you can run the unit tests in Node using npm test
or node tests/tests.js
. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use grunt test
.
To generate the code coverage report, use grunt cover
.
Author
| | |---| | Mathias Bynens |
License
This library is dual licensed under the MIT and GPL licenses.