---
title: "字符计数扩展"
description: "使用字符计数扩展计算和限制编辑器中的字符数量。在我们的文档中了解更多信息！"
canonical_url: "https://tiptap.zhcndoc.com/editor/extensions/functionality/character-count"
---

# 字符计数扩展

使用字符计数扩展计算和限制编辑器中的字符数量。在我们的文档中了解更多信息！

`CharacterCount` 扩展限制允许的字符数量为特定长度，并能够返回字符和单词的数量。就这些，没有别的。

> **Interactive demo:** [CharacterCount](https://embed.tiptap.dev/preview/Extensions/CharacterCount)

## 安装

```bash
npm install @tiptap/extensions
```

## 使用

```js
import { Editor } from '@tiptap/core'
import { CharacterCount } from '@tiptap/extensions'

new Editor({
  extensions: [CharacterCount],
})
```

## 设置

### limit

应该允许的最大字符数。

默认值: `null`

```js
CharacterCount.configure({
  limit: 240,
})
```

### autoTrim

设置是否在以编程方式设置超出限制的内容时自动修剪内容。如果设置为 `false`，内容将不会自动修剪，从而允许您手动处理多余的内容。

默认值: `true`

```js
CharacterCount.configure({
  limit: 240,
  autoTrim: false,
})
```

### mode

计算大小所使用的模式。

默认值: `'textSize'`

```js
CharacterCount.configure({
  mode: 'nodeSize',
})
```

### autoTrim

控制在初始内容超出配置限制时是否自动修剪。当设置为 `false` 时，超出限制的初始内容会被保留。在文档仍然超出限制期间，任何会增加内容大小的事务都会被阻止。

默认值: `true`

```js
CharacterCount.configure({
  limit: 280,
  autoTrim: false, // 保留超出限制的初始内容
})
```

### textCounter

要使用的文本计数器函数。默认为简单的字符计数。

默认值: `(text) => text.length`

```js
CharacterCount.configure({
  textCounter: (text) => [...new Intl.Segmenter().segment(text)].length,
})
```

### wordCounter

要使用的单词计数器函数。默认为简单的单词计数。

默认值: `(text) => text.split(' ').filter((word) => word !== '').length`

```js
CharacterCount.configure({
  wordCounter: (text) => text.split(/\s+/).filter((word) => word !== '').length,
})
```

## 存储

### characters()

获取当前文档的字符数。

```js
editor.storage.characterCount.characters()

// 获取特定节点的大小。
editor.storage.characterCount.characters({ node: someCustomNode })

// 重写默认的 `mode`。
editor.storage.characterCount.characters({ mode: 'nodeSize' })
```

### words()

获取当前文档的单词数。

```js
editor.storage.characterCount.words()

// 获取特定节点的单词数。
editor.storage.characterCount.words({ node: someCustomNode })
```

## 源代码

[packages/extensions/src/character-count/](https://github.com/ueberdosis/tiptap/blob/main/packages/extensions/src/character-count/)

## 最小安装

```js
import { Editor } from '@tiptap/core'
import { CharacterCount } from '@tiptap/extension-character-count'

new Editor({
  extensions: [CharacterCount],
})
```
