runes
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/runes package

0.4.3 • Public • Published

✂️ Runes

NPM Version Build Status

Unicode-aware JS string splitting with full Emoji support.

Split a string into its constituent characters, without munging emoji and other non-BMP code points.

Why?

The native String#split implementation does not pay attention to surrogate pairs. When the code units of a surrogate pair are split apart, they are not intelligible on their own. Unless they are put back together in the correct order, individual code units will cause problems in code that handles strings.

Installation

$ npm install runes

Example

const runes = require('runes')
 
// Standard String.split
'♥️'.split('') => ['', '']
'Emoji 🤖'.split('') => ['E', 'm', 'o', 'j', 'i', ' ', '', '']
'👩‍👩‍👧‍👦'.split('') => ['', '', '', '', '', '', '', '', '', '', '']
 
// ES6 string iterator
[...'♥️'] => [ '', '' ]
[...'Emoji 🤖'] => [ 'E', 'm', 'o', 'j', 'i', ' ', '🤖' ]
[...'👩‍👩‍👧‍👦'] => [ '👩', '', '👩', '', '👧', '', '👦' ]
 
// Runes
runes('♥️') => ['♥️']
runes('Emoji 🤖') => ['E', 'm', 'o', 'j', 'i', ' ', '🤖']
runes('👩‍👩‍👧‍👦') => ['👩‍👩‍👧‍👦']
 

Substring example

const runes = require('runes')
 
// String.substring
'👨‍👨‍👧‍👧a'.substring(1) => '�‍👨‍👧‍👧a'
 
// Runes
runes.substr('👨‍👨‍👧‍👧a', 1) => 'a'
 

Dependents (57)

Package Sidebar

Install

npm i runes

Weekly Downloads

37,856

Version

0.4.3

License

MIT

Last publish

Collaborators

  • dotcypress