unicode-byte-truncate
v1.0.0
Published
Unicode aware string truncation that given a max byte size will truncate the string to or just below that size
Downloads
1,342,382
Maintainers
Readme
unicode-byte-truncate
Truncate a string to a given byte size by removing bytes from the right while making sure not to slice in the middle of a multi-byte unicode character.
Installation
npm install unicode-byte-truncate --save
Usage
var trunc = require('unicode-byte-truncate')
var str = 'foo🎉bar' // 10 byte string - byte 4 to 7 is a single character
console.log(trunc(str, 4)) // `foo` == 0x666F6F (3 bytes)
console.log(trunc(str, 5)) // `foo` == 0x666F6F (3 bytes)
console.log(trunc(str, 6)) // `foo` == 0x666F6F (3 bytes)
console.log(trunc(str, 7)) // `foo🎉` == 0x666F6FF09F8E89 (7 bytes)
API
The unicode-byte-truncate module exposes a single trunc
function.
result = trunc(string, maxBytes)
Given a string
and a maxBytes
integer greater than or equal to zero,
the trunc
function will slice characters off the end of the string to
ensure that it doesn't contain more bytes than specified by the
maxBytes
argument.
The truncated string will be returned as the result
.
The trunc
function is multi-byte unicode aware and will never cut up
surrogate pairs. This means that the result
may contain fewer bytes
than specified by the maxBytes
argument.
License
MIT