字符串截取和替换


  recordResult1() { // data
      let data = {
        "text": "今天天气比较一般,虽然我不是那么喜欢烈日,不过阳光明媚的感觉是很不错滴。等到夏天 8 月嗯,我就去提车,拿下我的凯迪拉克 CT6,然后去周边城市旅游。没有尝试过自驾游,这次的好好体验一下开着车去旅行的惬意感觉。不说了,好好地工作,努力向前,冲鸭!!!",
        "length": 124,
        "items": [
          {
            "text": "今天天气比较一般,",
            "original": "今天天气比一般,",
            "section": [
              {
                "operation": 3,
                "explain": "建议插入“较”,让语义更清晰",
                "label": "030200",
                "score": 0.873086154460907,
                "begin": 5,
                "end": 5
              }
            ]
          },
          {
            "text": "不过阳光明媚的感觉是很不错滴。",
            "original": "不过阳光明媚的感觉是狠不错滴。",
            "section": [
              {
                "operation": 2,
                "explain": "建议用“很不错”替换“狠不错”",
                "label": "010200",
                "score": 0.9975100755691528,
                "begin": 30,
                "end": 33
              }
            ]
          },
          {
            "text": "好好地工作,",
            "original": "好好的工作,",
            "section": [
              {
                "operation": 2,
                "explain": "建议用“地”替换“的”",
                "label": "010100",
                "score": 0.992831826210022,
                "begin": 110,
                "end": 111
              }
            ]
          }
        ]
      }

      let oldText = '今天天气比一般,虽然我不是那么喜欢烈日,不过阳光明媚的感觉是狠不错滴。等到夏天 8 月嗯,我就去提车,拿下我的凯迪拉克 CT6,然后去周边城市旅游。没有尝试过自驾游,这次的好好体验一下开着车去旅行的惬意感觉。不说了,好好的工作,努力向前,冲鸭!!!'
      let { items } = data
      items.forEach(itemInfo => {
        let itemNewText = itemInfo.text
        let itemOldText = itemInfo.original
        itemInfo.section.forEach(sectionInfo => {
          let { explain } = sectionInfo // explain 修改建议
          console.log(oldText)
          console.log(itemOldText)
          let { startIndex, endIndex } = this.findSubstringIndices(oldText, itemOldText)
          console.log(startIndex, endIndex)
          if (startIndex == -1) return;

          const substring = oldText.slice(startIndex, endIndex);
          const styledSubstring = `<span style="color: red; font-weight: bold;"><a-tooltip placement="bottom"><template #title><span>${explain}</span></template>${substring}</a-tooltip></span>`;
          oldText = oldText.replace(substring, styledSubstring);
        })
      })
      let dataObj = {
        oldText,
        // text,
        items
      }
      console.log(dataObj)
    },

// 获取字符串中某一段的下标
    findSubstringIndices(mainString, substring) {
      let startIndex = mainString.indexOf(substring)
      if (startIndex === -1) {
        return { startIndex: -1, endIndex: -1 } // 如果子字符串不存在,返回-1
      }
      let endIndex = startIndex + substring.length - 1
      return { startIndex, endIndex }
    },
    // 把富文本的文字提取出来
    getSimpleText(html) {
      var re1 = new RegExp("<.+?>", "g")//匹配html标签的正则表达式,"g"是搜索匹配多个符合的内容
      var msg = html.replace(re1, '')//执行替换成空字符
      return msg
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值