Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/string-width
Get the visual width of a string - the number of columns required to display it
https://github.com/sindresorhus/string-width
Last synced: 3 days ago
JSON representation
Get the visual width of a string - the number of columns required to display it
- Host: GitHub
- URL: https://github.com/sindresorhus/string-width
- Owner: sindresorhus
- License: mit
- Created: 2015-07-16T22:05:16.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-06-30T14:48:18.000Z (6 months ago)
- Last Synced: 2024-10-29T15:46:34.252Z (about 1 month ago)
- Language: JavaScript
- Size: 39.1 KB
- Stars: 477
- Watchers: 12
- Forks: 31
- Open Issues: 9
-
Metadata Files:
- Readme: readme.md
- License: license
- Security: .github/security.md
Awesome Lists containing this project
- awesome-nodejs-cn - string-width - 获取字符串的可视宽度 - 显示字符串所需的列数 (包 / 命令行工具)
- awesome-nodejs - string-width - Get the visual width of a string - the number of columns required to display it. (Repository / Text/String)
- awesome-nodejs-cn - string-width - **star:478** 获取字符串的可视宽度——显示它所需的列数 (包 / 命令行实用工具)
- awesome-nodejs - string-width - Get the visual width of a string - the number of columns required to display it. (Packages / Command-line utilities)
- awesome-nodejs - string-width - Get the visual width of a string - the number of columns required to display it - ★ 108 (Command-line utilities)
- awesome-node - string-width - Get the visual width of a string - the number of columns required to display it. (Packages / Command-line utilities)
- awesome-nodejs-cn - string-width - 获取字符串的可视宽度-显示字符串所需的列数. (目录 / 命令行工具)
README
# string-width
> Get the visual width of a string - the number of columns required to display it
Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
Useful to be able to measure the actual width of command-line output.
## Install
```sh
npm install string-width
```## Usage
```js
import stringWidth from 'string-width';stringWidth('a');
//=> 1stringWidth('古');
//=> 2stringWidth('\u001B[1m古\u001B[22m');
//=> 2
```## API
### stringWidth(string, options?)
#### string
Type: `string`
The string to be counted.
#### options
Type: `object`
##### ambiguousIsNarrow
Type: `boolean`\
Default: `true`Count [ambiguous width characters](https://www.unicode.org/reports/tr11/#Ambiguous) as having narrow width (count of 1) instead of wide width (count of 2).
> Ambiguous characters behave like wide or narrow characters depending on the context (language tag, script identification, associated font, source of data, or explicit markup; all can provide the context). **If the context cannot be established reliably, they should be treated as narrow characters by default.**
> - http://www.unicode.org/reports/tr11/##### countAnsiEscapeCodes
Type: `boolean`\
Default: `false`Whether [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) should be counted.
## Related
- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module
- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string
- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string
- [get-east-asian-width](https://github.com/sindresorhus/get-east-asian-width) - Determine the East Asian Width of a Unicode character