TypeScript icon, indicating that this package has built-in type declarations

1.0.25 • Public • Published

string-width is active maintenance again! Use that package instead.
This package will mark as deprecated soon.

CJKE strings module

Tools for Chinese Japanese Korean Emoji string

The code is come from:

  • Write by myself
  • Codebase is copied from sindresorhus/string-width
  • Learn about emojis from tonytonyjan/string-width
  • Unicode tables copied from many wiki pages

Mostly you also need a module called stringz

describe('typescript', () => {
	it('is really great', () => {
		should(cleverMan).to.be('using it');


  • isCombiningCharacters - detect a character is in Combining Characters table
  • readFirstCompleteChar - get first complete character at beginning of given string, prevent or ?
  • unicodeEscape - escape string as "\uxxxx\uxxxx\uxxxx" form
  • limitWidth - cut a limited display width of a string
  • stringWidth - calculate display width of a string

readFirstCompleteChar(str: string, windowsConsole = false): CodePointInfo

var desc
str any string
windowsConsole is used for windows console or not


var type desc
data string first complete char
width number display width of that char
length number string length of that char
visible boolean should the char visible?

function limitWidth(str: string, limit: number, windowsConsole = false): LimitResult

var desc
str any string
limit target display width to cut
windowsConsole is used for windows console or not


var type desc
result string cut result
width number real display width of result

function stringWidth(str: string, windowsConsole = false): number

var desc
str any string
windowsConsole is used for windows console or not
{return} the display width of str

function isCombiningCharacters(code: number): boolean

var desc
code return value of 'string'.charCodeAt()
{return} is in combine char list

function unicodeEscape(str: string): string

var desc
str any string
{return} escaped string

Windows console

Windows Console (the black window) is not fully support unicode, so there is some workaround. Default is false.

char default when true
1 2
😂̀ 2 3
À̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀ 1 25
2 2
👍🏽 2 4(👍+🏽)


npm i cjke-strings

DownloadsWeekly Downloads






Unpacked Size

86.3 kB

Total Files


Last publish


  • gongt