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
          主站蜘蛛池模板: 灌云县| 嘉义市| 泸西县| 吴江市| 莲花县| 德江县| 潞城市| 五寨县| 长垣县| 景宁| 江口县| 永顺县| 叶城县| 三穗县| 阿瓦提县| 石城县| 靖远县| 孝义市| 满城县| 安乡县| 庄河市| 安塞县| 达日县| 中江县| 皋兰县| 偃师市| 凤庆县| 长汀县| 历史| 海林市| 滨海县| 涿州市| 玉树县| 武城县| 疏勒县| 璧山县| 三河市| 忻城县| 安西县| 稷山县| 鄯善县|