JS怎么判断鼠标选中的内容是否包含任意标签?

前言

公司的某个需求是:

  • 鼠标可以在页面中选择任意的内容
  • 前端去校验选择的内容是否是纯文本
  • 如果是,发请求;不是,提示选择的内容不规范

最终 window.getSelection() 去实现的

代码

js 复制代码
// 1.创建一个新的文档片段来保存选区内容
const richText = window.getSelection().getRangeAt(0).cloneContents();

// 2. 创建一个 div,将选择的内容作为他的子元素
// 3. 这样通过 innerHTML 就能获取字符串
const richTextContent = document.createElement('div');
richTextContent.appendChild(richText);
// 如果选择的内容包含了标签,则 text 的可能是值是 "xx  <span>aa</span> ccc" 这样的
const text = richTextContent.innerHTML;

// 这个正则表达的是选择的内容只能是 汉字、英文、数字、常见的标点符号和空格
const eReplaceSelectedWordReg = /^[\u4e00-\u9fa5a-zA-Z0-9。?!,;:""''()【】《》<>...~.?!,;\s:''\"()]*$/

if (!eReplaceSelectedWordReg.test(text)) {
    message.warning(
      '所选内容不规范,请选择数字、中文、英文及常规标点符号内容',
    );
    return;
}
相关推荐
We་ct6 分钟前
LeetCode 205. 同构字符串:解题思路+代码优化全解析
前端·算法·leetcode·typescript
2301_8127314142 分钟前
CSS3笔记
前端·笔记·css3
ziblog44 分钟前
CSS3白云飘动动画特效
前端·css·css3
越努力越幸运50844 分钟前
CSS3学习之网格布局grid
前端·学习·css3
半斤鸡胗1 小时前
css3基础
前端·css
ziblog1 小时前
CSS3创意精美页面过渡动画效果
前端·css·css3
akangznl1 小时前
第四章 初识css3
前端·css·css3·html5
会豪1 小时前
深入理解 CSS3 滤镜(filter):从基础到实战进阶
前端·css·css3
头顶一只喵喵1 小时前
CSS3进阶知识:CSS3盒子模型,box-sizing:content-box和box-sizing:border-box的讲解
前端·css·css3
小飞大王6661 小时前
css进阶用法
前端·css