js 小说/纯文字 编辑器

关于js的编辑器,网上大都是富文本编辑器,如果不是经常读源代码,可能无法抽丝剥茧找到自己需要的代码。

需求

  1. 每一段文字需要添加一个p标签,方便使用css提高阅读体验。
  2. 字数统计

contenteditable

可以让元素处于可编辑状态,当前输入的内容是复制上一个元素的标签和类名。
比如

<div contenteditable>
	<p class="pEx"></p>
</div>

回车输入后就会变成这样

<div contenteditable>
	<p class="pEx"></p>
	<p class="pEx">the text you typed</p>
</div>

实现

  • 创建一个contenteditable的div标签
  • 在dom结构渲染完成后添加<p><br></p>占位,保证下一个标签也是p标签
  • 拦截paste事件,将富文本变成纯文字

代码

<template>
<div>
     <div class
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用一个名为DOMPurify的库来清除富文本编辑器中的HTML标签,它可以有效地过滤不安全的HTML标签和属性。下面是一个使用该库实现去除HTML标签的示例代码: ```javascript import DOMPurify from 'dompurify'; const dirtyHtml = '<p><span>Some</span> <b>HTML</b> <i>text</i></p>'; const cleanText = DOMPurify.sanitize(dirtyHtml, { ALLOWED_TAGS: [] }); console.log(cleanText); // Output: Some HTML text ``` 在上面的代码中,我们首先导入DOMPurify库。然后,我们创建一个包含HTML标签的字符串。接下来,我们使用DOMPurify的sanitize()方法,将其传入要保留的标签列表。在这个例子中,我们传入一个空的标签列表,这将导致所有HTML标签都被过滤掉。最后,我们输出经过过滤的纯文本。 ### 回答2: Vue富文本编辑器中要去掉标签,可以利用正则表达式或者DOM操作来实现。 方法一:利用正则表达式 可以使用正则表达式将标签去掉,示例代码如下: ```javascript function removeTags(input) { return input.replace(/<[^>]+>/g, ''); } // 使用示例 let content = '<p>这是一段带有标签的文本</p>'; let text = removeTags(content); console.log(text); // 输出:这是一段带有标签的文本 ``` 方法二:利用DOM操作 可以创建一个DOM节点,将内容作为innerHTML设置进去,然后获取节点的textContent,示例代码如下: ```javascript function removeTags(input) { let div = document.createElement('div'); div.innerHTML = input; return div.textContent || div.innerText || ''; } // 使用示例 let content = '<p>这是一段带有标签的文本</p>'; let text = removeTags(content); console.log(text); // 输出:这是一段带有标签的文本 ``` 以上两种方法都可以实现将富文本编辑器的内容中的标签去掉,得到纯文本内容。根据实际需求选择其中一种方法即可。 ### 回答3: Vue富文本编辑器的文字去掉标签,可以通过使用正则表达式或者DOM操作来实现。 一种简单的方法是使用正则表达式,通过替换标签标记来去除标签。例如,可以使用以下代码: ```javascript // 假设文本内容保存在一个名为content的变量中 content = content.replace(/<[^>]+>/g, ''); // 这将删除所有的HTML标签,只保留纯文本内容 ``` 另一种方法是使用DOM操作,将文本内容插入到一个临时的div元素中,然后获取纯文本内容。以下是一个示例代码: ```javascript // 假设文本内容保存在一个名为content的变量中 // 创建一个新的div元素 const tempDiv = document.createElement('div'); // 将文本内容插入到div中 tempDiv.innerHTML = content; // 获取纯文本内容 const plainText = tempDiv.textContent || tempDiv.innerText; // 使用plainText变量来获取只包含纯文本内容,而不包含标签 ``` 这两种方法都可以实现去除Vue富文本编辑器中的HTML标签,让文本只包含纯文本内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值