2015-08-20 20 views
3

我正在做一個Markdown分析器作爲正則表達式的研究的一部分,我想使用一段時間表達,作爲字符串替換鹼,例如:使用字符串替換中的正則表達式的句子中獲得的字符數

# Title 
## Title 

第一標題將被添加一個H1,因爲我只有一個#,第二將會因爲我有兩個#加入H 2。

而且我會用字符的伸長量的#正則表達式替換字符串,例如:

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

凡?將是#表達式找到的數量。

我的記錄有點令人困惑,但這是我發現解釋情況的最佳方式。

回答

2

我發現了一個簡單的解決方案,替代能接受的功能,所以我可以做任何事情,我需要檢查我的解決方案:

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

哇,很酷。 – Benvorth

0

你不能用「正則表達式」「計數」。

爲什麼不只是做

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

你說得對,我不能用正則表達式計算,但我可以用javascript函數來做魔術,我找到了一個有趣的解決方案,查看我的答案。 –