• 通过转义字符获取标签内的文字js通过转义字符获取字符串标签内的文字||获取字符串标签内的文字并加校验是否修改



    想要的效果 在这里插入图片描述

    如果只是想获取到输入的内容或者标签内的内容不校验的三种方式

    //方式一
    const extractText = (str) => {
      const parser = new DOMParser();
      const doc = parser.parseFromString(str, 'text/html');
      const textNodes = doc.body.innerText.trim().split('\n');
      return textNodes;
    };
     
    const input = '
    提取文字

    这是段落文本

    '
    ; const extractedTexts = extractText(input); console.log(extractedTexts); // 输出: ["提取文字", "这是段落文本"] //这样获取的是整个的内容不方便加校验
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    方式二
    let html_str = "
    123
    "
    // 1. let reg = new RegExp('<[^<>]+>','g'); let text = html_str.replace(re ,""); //或 2. let text = html_str.replace(/<[^<>]+>/g,""); console.log(text); // 123 方式三 let html_str = "
    123
    "
    // 1. let reg = new RegExp('<[^<>]+>','g'); let text = html_str.replace(re ,""); //或 2. let text = html_str.replace(/<[^<>]+>/g,""); console.log(text); // 123
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    最优解
    <div
       :data-pindex="i"
       :data-index="j"
        @input="addComment($event, i, j)"
        class="content"
        v-html="o.copyTermsContent"
        >
      </div>
        // 修改模版内容
        addComment(e, pIndex, index) {
          this.detailForm.orderTermsList[pIndex].orderTermsDetailList[
            index
          ].termsContent = e.target.parentNode.innerHTML
        },
      //  js部分
      onSend() {
          let isChange = true
          if (this.detailForm.orderTermsList.length > 0) {
            this.detailForm.orderTermsList.forEach(item => {
              if (item.orderTermsDetailList.length > 0) {
                item.orderTermsDetailList.map(i => {
                  let termsContentList = i.termsContent.match(
                    /(<(\w+)\s?.*?>)([^<].*?[^>])(<\/\2>)/gi
                  )
                  // 把获取到的标签内的数据放到数组了判断合同内容是否修改
                  let copyTermsContentList = i.copyTermsContent.match(
                    /(<(\w+)\s?.*?>)([^<].*?[^>])(<\/\2>)/gi
                  )
                  if (termsContentList !== null) {
                    termsContentList.map((c, index) => {
                      if (termsContentList[index] === copyTermsContentList[index]) {
                        isChange = false
                      }
                    })
                  }
                })
              }
            })
            if (!isChange) {
              this.$message.warning('条款内容未修改')
              return
            }
          }
       }
       //css部分
       <style lang="less" scoped>
    .content {
      /deep/ [contenteditable] {
        color: rgb(0, 128, 255);
      }
    }
    </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    需求内容

    编制合同模版,引用条款时,特殊字符内的内容可修改编辑,其他的内容控制不可修改只读,可修改的部分使用蓝色底纹标记并必填控制,如未填写/未修改时保存/提交页面给出提示信息"
    条款内容未修改"

    解析match() 方法

    match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。match() 方法将检索字符串 String Object,以找到一个或多个与 参数 匹配的文本。这个方法的行为在很大程度上有赖于 参数 是否具有标志 g。如果 参数 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。

  • 相关阅读:
    大模型:如何利用旧的tokenizer训练出一个新的来?
    在Vue项目导入路径中@符号是什么意思?
    Java入门教程(1)——Java概述
    三维视频融合技术监控平台怎么做?原理算法是哪个公司在研发?
    PIL如何批量给图片添加文字水印?
    红队内网攻防渗透:内网渗透之内网对抗:隧道技术篇&防火墙组策略&ICMP&DNS&SMB协议&出网判断&C2上线&解决方案
    苍穹外卖(八) 使用WebSocket协议完成来单提醒及客户催单功能
    nvme盘 实时温度查询及警告温度查询修改
    Vue3学习(二十二)- 保存文档内容
    selenium打开火狐浏览器
  • 原文地址:https://blog.csdn.net/gaoyu007/article/details/133982367