kbinani / split-graphemes

Divide character strings into graphemes.

Home Page:https://www.npmjs.com/package/split-graphemes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

split-graphemes

Divide ligature letters such as Thai, Khmer letters and complex emoji into array of graphemes. You can simply use this library instead of Array.from to get graphemes.

CircleCI

Installation

$ npm install split-graphemes

Examples

Emoji

// An emoji 'πŸ‘¨β€πŸ‘©β€πŸ‘¦β€πŸ‘¦' consists of 4 people face emoji joined by Zero Width Joiners (ZWJ).
const chars = Array.from('πŸ‘¨β€πŸ‘©β€πŸ‘¦β€πŸ‘¦') // ['πŸ‘¨', ZWJ, 'πŸ‘©', ZWJ, 'πŸ‘¦', ZWJ, 'πŸ‘¦']
// It is interpreted exactly as one character!
const chars = splitGraphemes('πŸ‘¨β€πŸ‘©β€πŸ‘¦β€πŸ‘¦') // ['πŸ‘¨β€πŸ‘©β€πŸ‘¦β€πŸ‘¦']

Khmer characters

Array.from('αž”αŸ‰αž»αžŸαŸ’αžŠαž·αŸ') // ['αž”', 'αŸ‰', 'ុ', 'ស', 'αŸ’', 'ដ', 'ិ', '៍']
splitGraphemes('αž”αŸ‰αž»αžŸαŸ’αžŠαž·αŸ') // ['αž”αŸ‰αž»', 'αžŸαŸ’αžŠαž·αŸ']

Japanese NFD

splitGraphemes('ごん゙に゙げば') // ['ご', 'γ‚“γ‚™', 'に゙', 'げ', 'ば']
splitGraphemes('γƒγ‚šγƒ’γ‚šγƒ•γ‚šγƒ˜γ‚šγƒ›γ‚š') // ['γƒγ‚š', 'γƒ’γ‚š', 'γƒ•γ‚š', 'γƒ˜γ‚š', 'γƒ›γ‚š']

English

splitGraphemes('Hello') // ['H', 'e', 'l', 'l', 'o']

Supported ligature characters

The list of characters is at here.

About

Divide character strings into graphemes.

https://www.npmjs.com/package/split-graphemes


Languages

Language:JavaScript 100.0%