vue项目实现错误高亮,jquery-highlighttextarea踩坑

在Vue项目中使用jquery-highlighttextarea实现文本高亮时遇到了字符转换和高亮异常问题。通过引入jQuery及相关依赖,并在数据更新时执行高亮方法。为解决特殊字符导致的高亮错乱,选择了直接修改库的源码,针对75行进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

  1. 首先安装依赖
    • “jquery”: “^3.5.1”,
    • “jquery-highlighttextarea”: “^3.2.1”,
    • “jquery-ui”: “^1.12.1”,
      看了很多库都是基于jq的, 次产品提的需求是要在输入框内实现, 只找到jquery-highlighttextarea满足。
  2. 配置jquery
chainWebpack: config => {
        config
            .plugin('provide')
            .use(webpack.ProvidePlugin, [{
                $: 'jquery',
                jquery: 'jquery',
                jQuery: 'jquery',
                'window.jQuery': 'jquery',
            }])
    },
  1. 引入依赖
	import 'jquery-highlighttextarea/jquery.highlighttextarea.css'
	import 'jquery-highlighttextarea/jquery.highlighttextarea.js'
  1. 编写高亮及清除方法
   /**
     * 设置高亮错误提示
     */
        setErrorTextHighLight() {
            this.$nextTick(() => {
                $(`.bgHighLight .el-input__inner`).highlightTextarea({
                    words: [
                        {
                            color: '#ffff00',
                            words: [
                                '[\uFF00-\uFFFF\u2E80-\u9FFF\u00ab\u00bb\u2026]+',
                                '[~_|“”*‘’]',
                            ],
                        },
                    ],
                    caseSensitive: false,
                })
            })
        },
        // clear清除数据
        dataClear(e) {
            $(
                `.${e} .highlightTextarea .highlightTextarea-container .highlightTextarea-highlighter mark`
            ).each((i, e) => {
                e.innerText = ''
            })
        },
  1. 数据更新钩子 进行高亮方法执行
this.$once('hook:updated', () => {
            this.setErrorTextHighLight()
        })

遇到的问题

  1. 有几个特殊字符 作者进行了转换
{
    '&': "&",
    '"': """,
    '<': "&lt;",
    '>': "&gt;"
               }
  1. 高亮符号里添加了:;后高亮就异常了。 生成的标签出现错乱。
    在这里插入图片描述
    在这里插入图片描述
    我目前的解决办法把源码拷贝到本地一份, 修改源码.
    jquery-highlighttextarea3.2.1版本 75行对获取到的文本进行处理
    在这里插入图片描述
  2. / 高亮异常 同上处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值