js如何在粘贴文本到指定组件之前做内容替换?
试试这几个方法能实现你想要的不
// 获取剪贴板中的纯文本内容 var clipboardData = event.clipboardData || window.clipboardData; var plainText = clipboardData.getData("text/plain"); // 使用正则表达式替换HTML和JS代码,替换掉所有的HTML标签和script标签 var cleanText = plainText.replace(/<[^>]+>/g, ""); // 插入替换后的文本到目标组件中 document.execCommand("insertHTML", false, cleanText);
可以使用粘贴事件监听器或者一个新特性 ClipboardEvent.clipboardData
因为 clipboardData
还处于实验阶段,以下解决方案兼容性有待考证(但根据浏览器兼容性列表,主流浏览器都有实现,所以问题不大)
// 获取富文本编辑器const editorElement = document.getElementById('rich-text-editor');// 监听粘贴事件editorElement.addEventListener('paste', function(event) { // 阻止默认的粘贴行为 event.preventDefault(); // 获取剪贴板中的文本数据 const clipboardData = event.clipboardData || window.clipboardData; const pastedText = clipboardData.getData('text/plain'); // 清除HTML和JavaScript代码,只保留纯文本部分 const plainText = stripTagsAndScripts(pastedText); // 在富文本编辑器中插入纯文本内容 insertPlainText(editorElement, plainText);});// 清除HTML和JavaScriptfunction stripTagsAndScripts(text) { // 正则表达式清除不需要的元素,只保留纯文本部分。 return text.replace(/<[^>]+>/g, '').replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');}// 向富文本中插入内容(根据需求自定义)function insertPlainText(element, content) { // 这里我只是简单地追加 element.innerText += content;}
上面只是简单实现插入,如果想具体插入到光标所在位置等更复杂的需求可以参考下方 Selection
链接自行完善
参考
clipboardData MDN
Selection MDN
问题内容: 我正在寻找一个如何将文本复制到iOS剪贴板的干净示例,然后可以在其他应用程序中使用/粘贴该文本。 此功能的优点是可以快速复制文本,而无需传统文本复制的标准文本突出显示功能。 我假设键类在其中,但是在它们提供的代码示例中找不到相关的区域。 问题答案: 如果您只需要纯文本,则可以使用属性。它既可读又可写: (从剪贴板中 读取数据时 ,UIPasteboard文档还建议您首先检查一下,“以避
问题内容: 将Java代码生成的内容(或文本)粘贴到excel中时遇到问题。问题是我的Java代码生成了包含多行的字符串,即包含换行符()。当我尝试复制此内容并将其粘贴到Excel文件中时,出现带有方框符号的多行文本。我知道Windows不仅用于换行,还用于换行。我试图取代我用并粘贴生成的文本,但我在我的Excel文件中得到同样的方框。这是我的示例代码: 我使用了 “” 来包装文字。当我尝试在Ex
问题内容: 这是Web上RTE的常见问题之一。您能否指导我完成以下步骤: 粘贴为纯文本 保留HTML,但删除WORD / HTML样式 我想直接在粘贴(paste_preprocess回调)上执行此操作,而无需打开粘贴插件提供的对话框。 有什么想法/经验吗? 谢谢, 问题答案: 这就是我要做的粘贴纯文本。 1. paste_preprocess设置(在tinymce init中) 2.函数stri
问题内容: 我在Web应用程序的根目录有一个文本文件,我想将其加载到javascript .. groovy中的变量中,我可以这样做: 如何在javascript中获得类似的结果? 问题答案: XMLHttpRequest,即AJAX,不带XML。 具体执行的方式取决于您使用的JavaScript框架,但是如果我们忽略互操作性问题,您的代码将类似于: 但是,通常来讲,并不是所有平台上都提供XMLH
有没有大佬,想问问vim里复制当前行后粘贴到指定行要求粘贴到指定行的内容之后咋弄啊。 老师只教了yy+p啊