安装
- 首先安装依赖
- “jquery”: “^3.5.1”,
- “jquery-highlighttextarea”: “^3.2.1”,
- “jquery-ui”: “^1.12.1”,
看了很多库都是基于jq的, 次产品提的需求是要在输入框内实现, 只找到jquery-highlighttextarea满足。
- 配置jquery
chainWebpack: config => {
config
.plugin('provide')
.use(webpack.ProvidePlugin, [{
$: 'jquery',
jquery: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
}])
},
- 引入依赖
import 'jquery-highlighttextarea/jquery.highlighttextarea.css'
import 'jquery-highlighttextarea/jquery.highlighttextarea.js'
- 编写高亮及清除方法
setErrorTextHighLight() {
this.$nextTick(() => {
$(`.bgHighLight .el-input__inner`).highlightTextarea({
words: [
{
color: '#ffff00',
words: [
'[\uFF00-\uFFFF\u2E80-\u9FFF\u00ab\u00bb\u2026]+',
'[~_|“”*‘’]',
],
},
],
caseSensitive: false,
})
})
},
dataClear(e) {
$(
`.${e} .highlightTextarea .highlightTextarea-container .highlightTextarea-highlighter mark`
).each((i, e) => {
e.innerText = ''
})
},
- 数据更新钩子 进行高亮方法执行
this.$once('hook:updated', () => {
this.setErrorTextHighLight()
})
遇到的问题
- 有几个特殊字符 作者进行了转换
{
'&': "&",
'"': """,
'<': "<",
'>': ">"
}
- 高亮符号里添加了:;后高亮就异常了。 生成的标签出现错乱。


我目前的解决办法把源码拷贝到本地一份, 修改源码.
jquery-highlighttextarea3.2.1版本 75行对获取到的文本进行处理

- / 高亮异常 同上处理