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 閱讀(365) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 灵丘县| 新民市| 斗六市| 红河县| 金山区| 邹平县| 邓州市| 建始县| 文昌市| 乐昌市| 保靖县| 长泰县| 盱眙县| 卢龙县| 旺苍县| 平舆县| 石城县| 巴里| 元氏县| 永平县| 淮安市| 石阡县| 衡水市| 桐柏县| 都兰县| 洪泽县| 云梦县| 报价| 宿州市| 武城县| 新兴县| 商洛市| 太保市| 玛纳斯县| 冀州市| 津南区| 天津市| 深泽县| 札达县| 衡东县| 平度市|