@nxmix/string-visual-width
v1.0.1
Published
Get the visual width of the string
Downloads
2
Readme
string-visual-width
Get the visual width of the string
Why
Because of the combination of Unicode and Emoji characters, it is difficult to calculate the actual display width of a string in Terminal applciation. Strictly speaking there is no universal method to do that.
I try to figure it out in accordance with the following steps:
- Strip out all ansi codes in string.
- Nomalize unocide character before calculation,
n\u0303
becomesñ
. - Use @nxmix/emoji-seq-match to match joined Emoji characters as long as possible and calculate their width as 2.
- Use @nxmix/is-full-width determine which characters should be treated as East Asian characters and count a width of 2.
Usage
Install
npm i @nxmix/string-visual-width --save
Typescript definition file is already included.
Examples
const width = require('@nxmix/string-visual-width').default;
width('中');
//=> 2
width("👩👦");
//=> 2
import getMatchedLength from '@nxmix/string-visual-width';
width('中');
//=> 2