mout
Version:
Modular Utilities
20 lines (17 loc) • 621 B
text/typescript
import toString from '../lang/toString';
/**
* Escape string into unicode sequences
*/
function escapeUnicode(str, shouldEscapePrintable) {
str = toString(str);
return str.replace(/[\s\S]/g, function(ch) {
// skip printable ASCII chars if we should not escape them
if (!shouldEscapePrintable && /[\x20-\x7E]/.test(ch)) {
return ch;
}
// we use "000" and slice(-4) for brevity, need to pad zeros,
// unicode escape always have 4 chars after "\u"
return `\\u${`000${ch.charCodeAt(0).toString(16)}`.slice(-4)}`;
});
}
export default escapeUnicode;