实战FCKeditor,添加自定义工具栏---插入代码(二)

    今天,我们开始修改JS代码了,可惜我的正则不好,不能有很大改动,只好一点点来了。废话不说,开工:

 

=====================以下为双鱼编辑器中Code.js文件的代码修改=================

1、双鱼编辑器本身对代码的空格支持不够好,因此我在“str = "<div style=\""+CodeDivStyle+"\">" + str + "</div>"; “后面加了一句(也一定要在这句之后):

str = str.replace(/\s{2}/g,"&nbsp;&nbsp;");

意思是替换连续2个空格(不能为一个,否则会把不该替换的也替换)为可显示的HTML代码&nbsp;,这样,代码各行之前就和原代码一样,会有空格,代码看起来更加清晰。

 

2、格式化VBScript代码函数中,少了一些关键字,我们再加一些,查找“|While|With|Xor”,

在它之后加上:|Sub|Len|Right|Function|IsNull|IsEmpty|Left|Cint|Instr|Cstr|Replace|Chr|Error|Trim

|Mid|Instrrev|LCase|UCase|Hex诶呀,累了,不知道还有些什么,没加上的各位朋友自己加吧,头疼。

 

3、格式化SQL,有待高手来解决,,还有好多没改,目前就修改下注释,变为绿色;

搜索“str = str.replace(/([%\^\*\(\)\-\+=|\/,\.~])/gi,"<font color=\"#999999\">$1</font>");

把它和它下面一行都删除,之后在函数最后一行 “return (str); ”的前面加上:

str = FortmatCodeRemark_SQL(str);

现在写FortmatCodeRemark_SQL函数:

//SQL注释替换为绿色

function FortmatCodeRemark_SQL(str)

{

    str = str.replace(/(\/\*)([\s\S]*?)(\*\/)/g,

            function() {

                    var s = arguments[1];

                    if (arguments[2] != "")

                        s = "<font style=\"color:#008080\">"+s+ClearColorTag(arguments[2])+arguments[3]+"</font>";

                    else

                        s += arguments[3];

                    return(s);

                });

    str = str.replace(/([^\-])(\-{2})(.*)/g,

            function() {

                    var s;

                    if (arguments[3].substr(0,1) != "")

                        s = "<font style=\"color:#008080\">"+arguments[2]+ClearColorTag(arguments[3])+"</font>";

                    else

                        s = arguments[2]+arguments[3];

                    return(arguments[1]+s);

                });

    return(str);

}

 

搜索“str = str.replace(/(N)('.*?')/gi,

         function() {

              return (arguments[1]+"<font color=\"#FF0000\">"+arguments[2].replace(/<.*?>/g,"")+"</font>");

         });

更改为:“str = str.replace(/('.*?')/gi,

         function() {

              return ("<font color=\"#FF0000\">"+arguments[1].replace(/<.*?>/g,"")+"</font>");

         });

函数解决了注释为绿色,但是又把特殊符号变为灰色的功能取消了。。还不知道怎么解决。

 

4、搜索“// 双引号中关键字不变色”,把下面一段函数删除,正则有问题,会捣乱格式。

后面会加个函数,在各个格式化函数中调用。

     // 双引号中关键字不变色

     str = str.replace(/(&quot;)([\s\S]*?)\1/g,

              function() {

                   return(arguments[1]+arguments[2].replace(/(<[\s\S]*?>)/g,"")+arguments[1]);

              });

5、搜索“//  str = FormatBrace(str);”,把前面的斜杆删除,并把它的下面一句:

str = FormatValue(str);”放到函数最前面(防止把注释里的双引号中值颜色也变棕色)

6、新增函数:替换收缩图片;在格式化c#,vb.net,vbscript,jscript中相应地方添加该函数。

7、新增函数:双引号中关键字不变色;加在各格式化函数中。

8、增加个VB.NET格式化:

    搜索“case "SQL": str = FormatSQL(str,canCollapse); break;”,在其后加上:

    case "VB.NET": str = FormatVBDOTNET(str,canCollapse); break;

9、更改vbscript,jscript,加上折叠功能。

 

(以上6-9步代码较多,这里不放出,有兴趣的可以查看code.js。都有详细注释。)

 

 

终于,铁棒被我们磨成针了,现在,我们可以真正的使用插入代码功能,试一试,恩。感觉蛮好!上面的代码看着麻烦,,想研究的朋友可以看看,主要做个参考,我更改了什么。方便朋友们以后对这功能的增强。

 

好了,下面是源码的下载:

我的FCKeditor(经过精简,删除垃圾文件,保留全部功能,版本为2.4.1,已加入插入代码功能)
FCKeditor2.4.1.rar

插入代码时所更改的文件:(有自己FCKeditor的朋友可以直接下载覆盖)
Fckeditor.rar

                                                       --------by:
                                                                   zss1100
                                                                   2007.6.18

转载于:https://www.cnblogs.com/zss1100/archive/2007/06/18/788084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值