正则匹配字符串出现的位置

一段文字里多次出现一个重复的字符串,请问下如何拿到这个重复字符串每次出现的位置呢?

有木有正则办到的方法勒?

这是一插入位置{08}个66插入位置{08}66插入位置{16}66

比如上面这段字符串

我想要的就是插入位置{08}每次出现的位置
比如上面的字符串需要拿到以下结果
原文:这是一个666666
出现字符串: [{text: '插入位置{08}', index: 3, order: 1}, {text: '插入位置{08}', index: 6, order: 2}, {text: '插入位置{16}', index: 8, order: 3}]

阅读 3.3k
2 个回答
    let reg = /插入位置\{08\}/g
    let str = '这是一插入位置{08}个66插入位置{08}66插入位置{16}66'
    let order = 1
    let result = []
    while (true) {
      let temp = reg.exec(str)
      if (temp) {
        result.push({
          text: temp[0], index: temp.index, order: order
        })
        order++
      } else {
        break
      }
    }
    console.log(result)

RegExp的exec方法可以
例如:

var reg = new RegExp(/66/g)
reg.exec('666666') // ["66", index: 0, input: "666666", groups: undefined]
reg.exec('666666') // ["66", index: 2, input: "666666", groups: undefined]
reg.exec('666666') // ["66", index: 4, input: "666666", groups: undefined]
reg.exec('666666') // null
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏