Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including unicode-byte-truncate with all npm packages installed. Try it out:

var unicodeByteTruncate = require("unicode-byte-truncate")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

unicode-byte-truncate v1.0.0

Unicode aware string truncation that given a max byte size will truncate the string to or just below that size


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.

Build status js-standard-style


npm install unicode-byte-truncate --save


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)


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.



RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free