在字符串替换中使用正则表达式的一句话得到的字符数

Use the number of characters obtained in a sentence of the regular expression in the string replacement

我正在做一个 Markdown 解析器作为正则表达式研究的一部分,我想使用在一段表达式中获得的字符数作为字符串替换基础,例如:

# Title
## Title

第一个标题会加一个H1因为我只有一个#,第二个会加一个H2因为我有两个#.

而我会用字符的伸缩量是#正则表达式来替换一个字符串,例如:

markdown.replace ( /(\#+) *( +)/ig, "<h?></hr?>");

在哪里?将是表达式 # .

找到的数量

我的条目有些混乱,但这是我找到的解释情况的最佳方式。

你不能 "count" 使用正则表达式。

为什么不直接做

markdown.replace ( /(\#\#) *( +)/ig, "<h2></h2>")
    .replace ( /(\#) *( +)/ig, "<h1></h1>");

我找到了一个简单的解决方案,replace 可以接收一个函数,所以我可以做任何我需要的事情,查看我的解决方案:

        markdown = markdown.replace(/(\#+) *(.+)/ig, function(exp, n1, n2){
            size = n1.length;
            return "<h"+size+">"+n2+"</h"+size+">";
        })