Tools for Chinese Japanese Korean Emoji string
This module is a replacement of string-width
which lack of maintenance, I'll push patches into it when it becomes active again.
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
var | desc |
---|---|
str | any string |
windowsConsole | is used for windows console or not |
CodePointInfo
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? |
var | desc |
---|---|
str | any string |
limit | target display width to cut |
windowsConsole | is used for windows console or not |
LimitResult
var | type | desc |
---|---|---|
result | string | cut result |
width | number | real display width of result |
var | desc |
---|---|
str | any string |
windowsConsole | is used for windows console or not |
{return} | the display width of str |
var | desc |
---|---|
code | return value of 'string'.charCodeAt() |
{return} | is in combine char list |
var | desc |
---|---|
str | any string |
{return} | escaped string |
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(👍+🏽) |