最近正在做一個js版本的markdown解析庫,打算將網上比較流行的一個名為Parsedown的庫完整的遷移到js上,這樣前後端就有相同的展現效果了,但是我發現它的原作者在使用正則時用到了遞迴,但js正則又是不支援遞迴的,所以尋求一個解決方案能完美遷移,下面是PHP代碼,注意
preg_match部分
protected function identifyLink($Excerpt) { $extent = $Excerpt['text'][0] === '!' ? 1 : 0; if (strpos($Excerpt['text'], ']') and preg_match('/\[((?:[^][]|(?R))*)\]/', $Excerpt['text'], $matches)) {
回複內容:
最近正在做一個js版本的markdown解析庫,打算將網上比較流行的一個名為Parsedown的庫完整的遷移到js上,這樣前後端就有相同的展現效果了,但是我發現它的原作者在使用正則時用到了遞迴,但js正則又是不支援遞迴的,所以尋求一個解決方案能完美遷移,下面是PHP代碼,注意preg_match部分
protected function identifyLink($Excerpt) { $extent = $Excerpt['text'][0] === '!' ? 1 : 0; if (strpos($Excerpt['text'], ']') and preg_match('/\[((?:[^][]|(?R))*)\]/', $Excerpt['text'], $matches)) {
Github 官方出了個解析指令碼,何必還自己去寫
https://github.com/jgm/stmd
下載 js 下面那個 stmd.js 就是
看看這個,php-to-js https://github.com/Danack/PHP-to-Javascript