You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Quill如何判断当前聚焦行是否为空?

React Quill 判断当前聚焦行是否为空的方法

当然有方法可以实现,你可以借助Quill实例提供的API,在onChangeSelection回调里完成判断:

  1. 先确认当前存在有效的光标位置(range不为空且起始/结束位置一致)
  2. 通过editor.getLine(range.start)获取光标所在的行对应的Block节点
  3. 提取该行的纯文本内容,去除空白字符后判断是否为空

修改你的handleChangeSelection函数如下:

const handleChangeSelection = (range, source, editor) => {
  // 仅处理光标聚焦的情况(无选中内容,只是光标定位)
  if (range && range.start === range.end) {
    // 获取光标所在行的Block
    const lineBlock = editor.getLine(range.start);
    if (lineBlock) {
      // 提取行内的纯文本内容
      const lineText = editor.getText(lineBlock[0].offset, lineBlock[0].length);
      // 去除所有空白字符后判断是否为空
      const isLineEmpty = lineText.trim().length === 0;
      console.log('当前聚焦行是否为空:', isLineEmpty);
      // 这里可以根据isLineEmpty的值做后续逻辑处理
    }
  }
};

补充说明:

  • editor.getLine(index)方法会返回包含当前行Block的数组,第一个元素就是该行的Block对象,包含offset(行在编辑器中的起始位置)和length(行的内容长度)
  • editor.getText(start, length)用于提取指定范围的纯文本,避免了HTML格式的干扰
  • 使用trim()是为了排除行内仅包含空格、换行等空白字符的情况,确保判断的准确性

内容的提问来源于stack exchange,提问作者Snivio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:10:33