JScript多语言语法加亮引擎显示(代码精简)

本文介绍了使用JScript实现代码高亮的过程,重点演示了如何处理C#代码的关键字和字符串,通过巧妙的方法解决了字符串中关键字不应被高亮的问题。
    上一篇文章《 JScript中正则表达式用法详解 》中讲解了JScript中怎样使用正则表达式,这篇文章就给出一个实际应用的例子。昨晚我一边研究JScript中正则表达式的使用就一边在做JScript的语法加亮代码,今天完善了下,但是还不是完成品就是了,只能加亮关键字和字符串,对注释和代码折叠的支持还没有做,并且现在只支持C#语法,呵呵,大家莫见笑,这个程序虽然功能还没完全但是代码很精简,做为一个例子还是很不错的。
   
    大家可以复制一段C#代码到底下的TextArea或者直接在里面输入代码看看效果。





   代码下载于相关文章请看汇总帖: JScript多语言语法加亮引擎(不断更新中) ( 05-08 11:38)

    这里对代码中几个比较难以理解的地方做个解释。

    首先是字符串中的关键字问题,字符串中的关键字不应该属于关键字,因此不能高亮显示,比如"public XXXX"中的public,其实我并没有真正解决这个问题,但是为什么在上面的Demo中得出的结果又看来正常呢?

    其实我耍了个小聪明,用了CSS避开了这个问题,我设置在stringCSS下的所有keyWord的CSS效果都和stringCSS一样,这样最后显示出来的效果就看不到原有的关键字颜色而是字符串的颜色了。

    其次为了避免代码语法的关键字等与HTML标签冲突,所以我使用了$符号标记需要插入标签的位置,在所有关键字和语法元素都被处理完后再统一将$标记的地方替换成相应的HTML标签。而原有代码的$用两个$转义表示。因此大家会看到代码中有很多类似[^$]\$KW1的正则表达式,又因为这中形式的正则表达式前面有一个[^$]限定条件,所以 需要在插入$KW1标记时前面多加一个空格。
   
    其余好像没什么特别的了,大家自己看代码吧。

转载于:https://www.cnblogs.com/BG5SBK/archive/2006/05/06/JScript_CodeHighlight.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值