export function replaceHtmlSymbol(html) {
if (html == null) {
return ''
}
return html.replace(/</gm, '<')
.replace(/>/gm, '>')
.replace(/"/gm, '"')
.replace(/(\r\n|\r|\n)/g, '<br/>')
}
import { replaceHtmlSymbol } from './util.js'
export function getPasteText(e) {
const clipboardData = e.clipboardData || (e.originalEvent && e.originalEvent.clipboardData)
let pasteText
if (clipboardData == null) {
pasteText = window.clipboardData && window.clipboardData.getData('text')
} else {
pasteText = clipboardData.getData('text/plain')
}
return replaceHtmlSymbol(pasteText)
}
export function getPasteHtml(e, filterStyle, ignoreImg) {
const clipboardData = e.clipboardData || (e.originalEvent && e.originalEvent.clipboardData)
let pasteText, pasteHtml
if (clipboardData == null) {
pasteText = window.clipboardData && window.clipboardData.getData('text')
} else {
pasteText = clipboardData.getData('text/plain')
pasteHtml = clipboardData.getData('text/html')
}
if (!pasteHtml && pasteText) {
pasteHtml = '<span>' + replaceHtmlSymbol(pasteText) + '</span>'
}
if (!pasteHtml) {
return
}
const docSplitHtml = pasteHtml.split('</html>')
if (docSplitHtml.length === 2) {
pasteHtml = docSplitHtml[0]
}
pasteHtml = pasteHtml.replace(/<\/?(meta|html|head|title|body|script|link|xml)( [\s\S]*?)*>/igm, '')
pasteHtml = pasteHtml.replace(/<!--.*?-->/mg, '')
pasteHtml = pasteHtml.replace(/<!--?(\[)(\S|\s|[0-9])*?(\])--?>/mg, '')
pasteHtml = pasteHtml.replace(/<o:p>[\n\r\s ]*<\/o:p>/mg, '')
pasteHtml = pasteHtml.replace(/<style(([\s\S])*?)<\/style>/mg, '')
pasteHtml = pasteHtml.replace(/\s?data-.*?=('|")(\{?).+?(\}?)('|")/igm, '')
if (ignoreImg) {
pasteHtml = pasteHtml.replace(/<img.+?>/igm, '')
}
if (filterStyle) {
pasteHtml = pasteHtml.replace(/\s?(style)=('|").*?('|")/igm, '')
pasteHtml = pasteHtml.replace(/<\/?(h1|h2|h3|h4|h5|p|div|ul|i|ol|li|strong|b|a|button|u|hr|pre|em|font|sup|SUB|table|tbody|td|th|tr|br|col)([\s\S]*?)>/igm, '')
if (!/</g.test(pasteHtml)) {
pasteHtml = pasteHtml.replace(/(\r\n|\r|\n)/g, '')
}
} else {
pasteHtml = pasteHtml.replace(/\s?class=('|").*?('|")/igm, '')
}
return pasteHtml
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本