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
          主站蜘蛛池模板: 辽阳市| 崇礼县| 兰州市| 项城市| 湘西| 华蓥市| 蓬莱市| 湟中县| 全椒县| 泸溪县| 玉山县| 临漳县| 乌兰县| 南乐县| 揭东县| 武胜县| 红原县| 新营市| 芷江| 长阳| 同德县| 隆德县| 孟村| 宁夏| 应用必备| 含山县| 涡阳县| 石城县| 大安市| 天津市| 自贡市| 永丰县| 沙湾县| 南澳县| 顺义区| 孟州市| 手游| 龙井市| 富源县| 开鲁县| 万盛区|