If you are using node.js, install with npm:
$ npm install text-to-js-identifier
then use it in your file like so:
var to_js_identifier = require("text-to-js-identifier");to_js_identifier("hey!"); // -> "hey_$exclamationmark_"
If you are using ender, then add it to your library:
$ ender add text-to-js-identifier
and use it like this:
$.to_js_identifier("bool?"); // -> "bool_$questionmark_"
If you aren't using node or ender, then the function can be found in your global scope after you have downloaded and included your file:
to_js_identifier("pretty easy"); // -> "pretty_$space_easy"
_ (in fact, all replaced values are wrapped this way):
in -> _$in_throw -> _$throw_function -> _$function_
- -> _$dash_. -> _$period_~ -> _$tilde_
If we don't have a handy human-readable representation on hand, we just display the ASCII character code:
0 -> _$ASCII_48_† -> _$ASCII_8224_ƒ -> _$ASCII_402_
If the text contains a part that is wrapped in
_ (in other words, if it looks like a generated identifier), we will escape that with another set of wrappings. This is so that it is not possible to have two bits of different text generate the same identifier:
_$hey_ -> _$_$hey___$in_ -> _$_$in___$ASCII_402_ -> _$_$ASCII_402__
All text that is already valid will simply pass through unchanged:
hey -> hey?wassup -> _$questionmark_wassupetc. -> etc_$period_hey,you -> hey_$comma_you