Atea - Hero's Grave

          面向對象,開源,框架,敏捷,云計算,NoSQL,商業智能,編程思想。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            40 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
          近日需要一個代碼高亮插件。由于沒找到如blogjava這種所見即所得的,只找到一個動態分析的,所以使用到了正則替換。

          代碼:
          1 //replace string with RegExp param
          2 function testRegExp(){
          3     var str_before = 'aaa[code:java]bbb[/code]ccc';
          4     var reg = /(\[code:)([^\]]*)(\])([\s\S]*?)(\[\/code\])/g;
          5     var str_after = str_before.replace(reg,"<pre class=\"brush:$2;\">$4</pre>");
          6     alert("before: " + str_before + "\r\n" + "after:   " + str_after);
          7 }
          執行結果為:
          before: aaa[code:java]bbb[/code]ccc
          after:   aaa<pre class="brush:java;">bbb</pre>ccc

          解釋一下reg
          每一個小括號為一個捕捉點,reg里設置了5個,即為RegExp.$1 - RegExp.$5,在replace函數內可直接寫為$1 - $5
          其中的([\s\S]*?)表示匹配所有的字符,包括換行符,且為最少匹配。
          posted on 2009-06-12 11:11 Atea 閱讀(369) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 大同县| 江达县| 昭觉县| 江川县| 浮山县| 大荔县| 海林市| 昂仁县| 庆阳市| 邵阳县| 镇雄县| 朝阳市| 余干县| 婺源县| 南汇区| 南开区| 如东县| 调兵山市| 丰县| 朝阳区| 宁陕县| 黄梅县| 镇赉县| 武功县| 定陶县| 紫云| 岳阳市| 上饶县| 通海县| 东明县| 米林县| 壶关县| 封丘县| 和硕县| 扬中市| 青州市| 开封县| 卢氏县| 宜都市| 施甸县| 万源市|