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 阅读(359) 评论(0)  编辑  收藏 所属分类: Javascript

只有注册用户登录后才能发表评论。


网站导航: