温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Javascript中怎么实现一个超强语法高亮引擎

发布时间:2021-07-01 16:13:42 来源:亿速云 阅读:176 作者:Leah 栏目:编程语言

Javascript中怎么实现一个超强语法高亮引擎,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

SyCODE Syntax Highlighter具有速度高可扩展性强的特点,在一台当前主流PC机上可以轻松完成32KB的代码高亮处理,能够一次性完成64KB的代码高亮处理而不出现脚本缓慢提示,通过添加不同的正则表达式可以实现任何一种编程语言的语法高亮处理。

SyCODE Syntax Highlighter 1.0 内部已经实现二十于种语系的语法高亮,包括:
1. C/C++
2. C#
3. CSS
4. Delphi/Kylix
5. Pascal
6. Java
7. Vb/Vb.net
8. J(ava)Script
9. ActionScript
10. Php
11. Python
12. Ruby/Rails
13. Perl
14. Assembly
15. Bat 批处理
16. UNIX Shell
18. AWK
19. Sql
20. xml/xhtml

example: Highlighter.Execute(cleanCode, language);

Effect:
var Highlighter = {
Brushes: {},
RegexLib: {
MultiLineCComments : new RegExp('/\\*[\\s\\S]*?\\*/', 'gm'),
SingleLineCComments : new RegExp('//.*$', 'gm'),
SingleLinePerlComments : new RegExp('#.*$', 'gm'),
DoubleQuotedString : new RegExp('"(?:\\.|(\\\\\\")|[^\\""\\n])*"','g'),
SingleQuotedString : new RegExp("'(?:\\.|(\\\\\\')|[^\\''\\n])*'", 'g')
},
Match: function(value, index, css) {
this.value = value;
this.index = index;
this.length = value.length;
this.css = css;
},
Execute: function(str,lang) {
var registered = new Object();
for(var brush in Highlighter.Brushes)
{
var aliases = Highlighter.Brushes[brush].Aliases;
if(aliases == null) continue;
for(var i=0;i        };
if(!!registered[lang.toLowerCase()]) {
var ht = new Highlighter.Brushes[registered[lang.toLowerCase()]]();
return ht.Highlight(str);
}
else {
str = str.replace(/&/g, '&');
str = str.replace(/str = str.replace(/>/g, '>');
str = str.replace(/\t/g, '    ');
str = str.replace(/[ ]{2}/g, '  ');
return str.replace(/\n/g, '
');
}
}
};

关于Javascript中怎么实现一个超强语法高亮引擎问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI