uniapp/H5富文本复制文本功能

 

代码实现:

copy() {
				let replacedContent = this.form.resTaskBaseInfoDetail.content;
				let text = readHtml(replacedContent)
				// #ifdef H5
				let textarea = document.createElement("textarea")
				textarea.value = text
				textarea.readOnly = "readOnly"
				document.body.appendChild(textarea)
				textarea.select() // 选中文本内容
				textarea.setSelectionRange(0, text.length)
				uni.showToast({ //提示
					title: '复制成功',
					icon: 'success'
				})
				document.execCommand("copy")
				textarea.remove()
				// #endif
				// #ifndef H5
				uni.setClipboardData({
					data: text, //要被复制的内容
					success: () => { //复制成功的回调函数
						uni.showToast({ //提示
							title: `复制成功`,
							icon: 'success'
						})
					}
				}, true);
				// #endif
			},

工具方法:

// 提取html中文本
export const readHtml = (html) => {
	// 去掉注释,script,style,textarea,input,实体字符&开头;结尾
	let res = html.replace(/(<!--)([\s\S]*?)(-->)/g, "").replace(
		/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
		"").replace(/(<style)([\s\S]*?)(\/style>)/g, '').replace(/(<textarea)([\s\S]*?)(\/>)/g, '').replace(
		/(<input)([\s\S]*?)(\/>)/g, '').replace(/&([\s\S]*?);/g, '')
	// 提取><中间文字 多空格为一个  ><
	let result = res.replace(/(?=\<[\s\S]*?)([\s\S]*?)(?=\>)/g, "").replace(/\>/g, " ").replace(/\s+/g, " ")
	return result
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值