vue 实现html文本转义
时间: 2024-09-28 22:03:31 浏览: 30
在Vue.js中,为了防止恶意HTML插入到用户的输入或者从不可信的数据源中获取的内容中,你需要对用户提交或展示的文本进行HTML转义。Vue本身提供了一种安全的方式来处理这种情况。
你可以使用`v-html`指令,但需要配合`{{{ ... }}}`来包裹内容,并且加上`sanitize`属性来自动转换HTML标签。例如:
```html
<div v-bind:class="{ 'your-class': true }" v-html="sanitizedContent"></div>
```
其中,`sanitizedContent`是一个计算属性,可以这样处理:
```javascript
export default {
data() {
return {
userInput: '', // 用户输入的文本
};
},
computed: {
sanitizedContent() {
return this.userInput.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>');
// 或者使用 Vue的内置过滤器 `dangerouslySetInnerHTML`
// return { __html: this.userInput.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>') };
}
}
};
```
这样做的目的是将特殊字符替换为它们的实体形式,防止它们被浏览器误解为HTML结构。
阅读全文