JavaScript 怎么匹配字符串括号内的元素并拼成自己想要的字符串?

问题描述

怎么匹配字符串括号内的元素并拼成自己想要的字符串?

 var str = `- [1、响应式数据原理](#1响应式数据原理)    
            - [2、Vue.$nextTick()](#2vuenexttick)`
    

(#1响应式数据原理) 更改为(#heading-1)
(#2vuenexttick)更改为(#heading-2)
以此类推

问题出现的环境背景及自己尝试过哪些方法

现在是想要更改其他平台上的目录为自己想要的方便跳转,发现他是以锚点的形式,(#heading-1),(#heading-2)去执行的,不像github的markdown可以支持Typera的toc,所以想自己js写个脚本进行匹配后更改为自己想要的目录

尝试过使用replace的第二个参数有fn,没懂。

相关代码

let str2  = `
 - [1、响应式数据原理](#1响应式数据原理)
 - [2、Vue.$nextTick()](#2vuenexttick)`;

let bar = ``;
arr.forEach((item, index) => {
    // bar = str2.replace(sum, `(#heading-)${$1$2}`)
    bar = str2.replace(reg, '(#heading-1)');
})
console.log(bar)

你期待的结果是什么?实际看到的错误信息又是什么?

期望能匹配出自己想要的。

阅读 1.5k
1 个回答
let sub = 1;
const newStr = str.replace(/\(\#.*\)/g, () => `(#heading-${sub++})`);
console.log("newStr:", newStr)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题