for (var i = 0; i < tree.length; ++i) {
    if (tree[i].match(/^##/g)) {
      console.log(tree[i])
      tree[i] = '<p><a href="#toc-' + tocIndex++ + '">' +
        tree[i].replace('/^## /gm', '') +
      '</a></p>'
      console.log(tree[i])
      tocItems.push(tree[i])
    }
  }


第一个console.log(tree[i])输出## Chapter 1第二个输出:

<p><a href="#toc-1">## Chapter 1</a></p>


但是它应该输出:

<p><a href="#toc-1">Chapter 1</a></p>


我究竟做错了什么?

最佳答案

您没有使用正则表达式正确搜索google,以了解如何在javascript中使用正则表达式来学习这一点。顺便说一句,您不需要使用正则表达式。解决方法是:

 tree[i].replace('##', '') + '</a></p>'

关于javascript - 为什么以下正则表达式不删除##字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29317918/

10-16 22:58