wangeditor富文本编辑器限制输入文字长度和传到后台字符长度

文章描述了一个在Vue项目中使用WangEditor富文本组件的代码片段,包括配置服务器接口、字符长度限制功能以及使用正则表达式计算纯文本长度。组件还实现了图片上传功能,并在用户输入超过限制时给出警告。
摘要由CSDN通过智能技术生成
代码节选如下:
// 富文本组件
<template>
  <div ref="editorRef"></div>
</template>

<script lang="ts" setup>
import E from 'wangeditor'

const props = withDefaults(
  defineProps<{
    modelValue: string
    action?: string // 上传图片基础地址
    path: string // 上传图片业务地址
    height: number
    disabled: boolean // 是否禁用
    maxLength: number // 最大输入长度
    maxstrLength: number //最大字符长度
  }>(),
  {
    modelValue: '',
    action: ‘’,
    path: '/',
    height: 500, // 设置编辑区域高度
    disabled: false, // 默认启用
    maxLength: 25000,
    maxstrLength: 200000,
  }
)

const emit = defineEmits(['update:modelValue', 'update:isActive', 'update:overLen'])

let editor: E | null
onMounted(() => {
  editor = new E(editorRef.value)
  // 配置
  Object.assign(editor.config, {
    zIndex: 1,
    focus: false,
    height: props.height,
    uploadImgServer: props.action, // 配置 server 接口地址
    uploadImgHeaders: {
      Authorization: `Bearer ${getPiniaToken()}`,
      'X-Requested-With': 'XMLHttpRequest',
    },
    // 限制上传的最大图片数量
    uploadImgMaxLength: 9,
    // 单个文件的最大体积限制,默认为 10M
    uploadImgMaxSize: 10 * 1024 * 1024, // 10M
    onchange(newHtml: string) {
      const totalLens = getTextLength(newHtml)
      if (totalLens > props.maxLength || newHtml.length > props.maxstrLength) {
        
        message.warning('输入字符过长!')
      } else {
       。。。。
      }
    },
    onblur() {
      。。。
    },
    })
  editor.create()
  editor.txt.html(props.modelValue) // 初始化重新设置编辑器内容

/**
 * 计算富文本输入框内输入字符的长度(不包含p、img、video等标签,仅计算输入文字的长度)
 */
const getTextLength = (newHtml: string) => {
  return newHtml.replace(/<[^>]+>/g, '').length
}
</script>

使用正则表达式将标签替换成空字符串,然后计算输入文字的长度。

上述代码不全,仅展示部分。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值