- 浏览: 254536 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wangyajin333:
太棒了。谢谢分享。
ajax提交编码转换问题 java.io.charConVersionException:EOF -
leon.s.kennedy:
security3.0 也是如此
spring Security 中角色名字必须满足ROLE_XXX的格式 -
CoderDream:
如果把工程源代码贴出了就更好了,可以不带jar档!
struts2中Spring Security 自定义登陆页面的实现 -
heyujunlikely:
String s = "/**** package ...
java 去除注释的正则表达式 -
hastenlife:
[i][/i][b][/b][u][/u]引用引用[url][ ...
struts2 Validator 整合freemarker 取得FieldError的方法
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>SyntaxHighlighter Build Test Page</title>
- </head>
- <body>
- <h3>SyntaxHihglighter Test</h3>
- <pre id="showCode">
- var hi = "hi!";
- function test()
- {
- var a = 5;
- if(a<10)
- {
- return 10;
- }
- else
- {
- return avar b = a;
- }
- dvar b = a;
- }
- </pre>
- <script type="text/javascript">
- function hightLight(str)
- {
- var start_var = false;
- if(str.substring(0,3) == "var")
- {
- start_var = true;
- }
- var keywords_green = "= { }".split(" ");
- var keywords_blue = "function new return var typeof instanceof".split(" ");
- var keywords_red = "break case catch continue default delete else finally for if switch this throw try void while with ;".split(" ");
- //user lite keyword no hightLight with: do in
- strstr = str.replace(/};/g,"};\n");//对只有一行的压缩代码,每个方法换一行,方便查阅
- for(var i = 0; i < keywords_green.length; i++)
- {
- var oReg = new RegExp(keywords_green[i], "g");
- var rp = "<span style='color:green'>" + keywords_green[i] + "</span>";
- strstr = str.replace(oReg,rp);
- }
- //给异常的关键字var加上背景颜色,顺序不能变
- var rp3 = "<span style='background-color:yellow'>$1var</span>";
- strstr = str.replace(/([^;|{|\t| ])var/g,rp3);
- if(start_var)
- {
- alert(str);
- //去掉第一个以var开头的背景颜色
- strstr = str.replace(/<span style='background-color:yellow'>var<\/span>/,"var");
- }
- for(var i = 0; i < keywords_blue.length; i++)
- {
- var oReg = new RegExp(keywords_blue[i], "g");
- var rp = "<span style='color:blue'>" + keywords_blue[i] + "</span>";
- strstr = str.replace(oReg,rp);
- }
- for(var i = 0; i < keywords_red.length; i++)
- {
- var oReg = new RegExp(keywords_red[i], "g");
- var rp = "<span style='color:red'>" + keywords_red[i] + "</span>";
- var rp2 = "$1<span style='color:red'>" + keywords_red[i] + "</span>(";
- //if for are use more and other code not in keyword are use it
- if(keywords_red[i] == "if")
- {
- strstr = str.replace(/if(\s?)\(/g,rp2);
- }
- else if(keywords_red[i] == "for")
- {
- strstr = str.replace(/for(\s?)\(/g,rp2);
- }
- else
- {
- strstr = str.replace(oReg,rp);
- }
- }
- strstr = str.replace(/\n/g,"<br />");
- strstr = str.replace(/\t/g," ");//for ie can't with four space
- return str;
- }
- function init()
- {
- var obj = document.getElementById("showCode");
- var str = obj.innerText || obj.textContent;//innerHTML会吧<>转义成<>导致无法加亮分号
- obj.innerHTML = hightLight(str);
- }
- init();
- </script>
- </body>
- </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>SyntaxHighlighter Build Test Page</title> </head> <body> <h3>SyntaxHihglighter Test</h3> <pre id="showCode"> var hi = "hi!"; function test() { var a = 5; if(a<10) { return 10; } else { return avar b = a; } dvar b = a; } </pre> <script type="text/javascript"> function hightLight(str) { var start_var = false; if(str.substring(0,3) == "var") { start_var = true; } var keywords_green = "= { }".split(" "); var keywords_blue = "function new return var typeof instanceof".split(" "); var keywords_red = "break case catch continue default delete else finally for if switch this throw try void while with ;".split(" "); //user lite keyword no hightLight with: do in str = str.replace(/};/g,"};\n");//对只有一行的压缩代码,每个方法换一行,方便查阅 for(var i = 0; i < keywords_green.length; i++) { var oReg = new RegExp(keywords_green[i], "g"); var rp = "<span style='color:green'>" + keywords_green[i] + "</span>"; str = str.replace(oReg,rp); } //给异常的关键字var加上背景颜色,顺序不能变 var rp3 = "<span style='background-color:yellow'>$1var</span>"; str = str.replace(/([^;|{|\t| ])var/g,rp3); if(start_var) { alert(str); //去掉第一个以var开头的背景颜色 str = str.replace(/<span style='background-color:yellow'>var<\/span>/,"var"); } for(var i = 0; i < keywords_blue.length; i++) { var oReg = new RegExp(keywords_blue[i], "g"); var rp = "<span style='color:blue'>" + keywords_blue[i] + "</span>"; str = str.replace(oReg,rp); } for(var i = 0; i < keywords_red.length; i++) { var oReg = new RegExp(keywords_red[i], "g"); var rp = "<span style='color:red'>" + keywords_red[i] + "</span>"; var rp2 = "$1<span style='color:red'>" + keywords_red[i] + "</span>("; //if for are use more and other code not in keyword are use it if(keywords_red[i] == "if") { str = str.replace(/if(\s?)\(/g,rp2); } else if(keywords_red[i] == "for") { str = str.replace(/for(\s?)\(/g,rp2); } else { str = str.replace(oReg,rp); } } str = str.replace(/\n/g,"<br />"); str = str.replace(/\t/g," ");//for ie can't with four space return str; } function init() { var obj = document.getElementById("showCode"); var str = obj.innerText || obj.textContent;//innerHTML会吧<>转义成<>导致无法加亮分号 obj.innerHTML = hightLight(str); } init(); </script> </body> </html>
运行结果:
SyntaxHihglighter Test
var hi = "hi!"; function test() { var a = 5; if(a<10) { return 10; } else { return avar b = a; } dvar b = a; }
发现javaEye的语法着色功能有bug,我原来的str = str.replace(/};/g,"};\n");变成strstr = str.replace(/};/g,"};\n"); 了!给多了个str,重新编辑html代码也给弄乱了,把源代码上传给大家了。
语法着色我自己测试过了,这个其实很简单,就是把关键字替换一下而已,那些关键字替换成什么颜色完全可以自定义,语法着色不是我的目的,我的目的是作为压缩脚本后的语法检查。
因为不规范的写法在脚本压缩成一行和去掉多余空格后经常会报错,例如赋值符后的变量没有以;号结束,else后面没有{}包含起来等,在压缩后的脚本通过语法着色可以比较容易知道在那个地方出错了。
- hightLightJs.rar (1.4 KB)
- 下载次数: 35
发表评论
-
让IE对背景图进行缓存 解决ie6下背景闪动问题document.execCommand("BackgroundImageCache",false,true)
2010-10-07 20:19 3103让IE对背景图进行缓存 解决ie6下背景闪动问题documen ... -
自己写的一个验证手机号码的正则表达式 验证13xx 15xx 18xx
2010-08-13 16:52 2477正则表达式内容:1(3|5|8)[0-9]{9}$ 测试页面 ... -
利用google map api 根据经纬度计算两点距离
2010-01-28 20:10 3911今天有个需求要求利用google map api 根据经纬度计 ... -
ajax post 编码 乱码问题的解决方法
2010-01-27 11:51 2775用ajax提交表单,经常会 ... -
任意旋转图片的js实例
2010-01-25 13:42 4964<html> <head> < ... -
google map 应用学习网站
2010-01-18 19:01 1463Google Maps API中文同步文档 http://w ... -
document监听事件兼容性的几种写法
2010-01-15 11:03 3437<!DOCTYPE html PUBLIC " ... -
Google 排名top10 的 JavaScript 库
2009-11-20 11:35 2569JavaScript 是 Web 开发与设计中不可或缺的东西, ... -
用js判断浏览器是不是傲游,及版本(是不是经典版)
2009-10-15 13:02 1922用userAgent的方法判断不出是ie还是傲游,傲游有许多扩 ... -
jquery中使用ajax jsonp的方法和注意事项
2009-08-31 17:25 5279今天帮同事调试了下jquery中使用ajax jsonp方式, ... -
定时器 倒计时的一个实现
2009-08-18 12:28 1094<html> <head> & ... -
explorercanvas 让ie支持canvas的开源插件
2009-07-29 18:58 1817Modern browsers like Firefox, ... -
iframe动态自适应高度
2009-07-29 18:55 2547今天弄iframe动态自适应高度遇到了点问题,就是在ifr ... -
javascript 动态添加参数后再执行的方法
2009-07-29 18:54 1740Js代码 function myFunctio ... -
JsDoc js文档自动生成工具使用详解
2009-07-29 18:52 4270JsDoc js文档自动生成工具是google code上的一 ...
相关推荐
FastColoredTextBoxCF是一款基于C#语言的高效、功能强大的文本编辑控件,特别适用于实现代码语法高亮和着色。本文将深入探讨FastColoredTextBoxCF的源码、功能特性及其应用示例,帮助开发者更好地理解和使用这个控件...
3. **记录书签**:在长篇代码中定位关键位置变得简单,通过设置书签,用户可以迅速跳转到已标记的代码行,节省了寻找特定代码的时间。 4. **UMD文件阅读**:支持通用模块定义(UMD)格式的文件阅读,UMD是一种模块化...
语法高亮是编辑器的关键特性,FastColoredTextBox支持多种编程语言的语法着色,包括但不限于C#、Java、Python、JavaScript等。通过自定义规则,开发者可以轻松添加对新语言的支持。这些规则通常包括关键字、注释、...
`Fireball.SyntaxDocument.dll`专注于处理和解析代码文档,确保语法着色的正确执行。 另外,像`FreeImage.dll`这样的库,可能用于处理代码编辑器中的图像显示,比如在可视化编程或者代码示例中显示图形。`Fireball....
正则表达式虽然适用于简单的模式匹配,但在处理复杂语法结构时往往力不从心,导致语法高亮可能出现错误或不准确。`tree-sitter`通过解析代码生成AST,可以更准确地识别代码结构,提供更为精细的语法着色方案。 首先...
代码语法着色的实现,能够使得代码阅读起来更加直观,提高文章的可读性和美感。本文将介绍如何使用SyntaxHighlighter和CKEditor插件,来实现代码语法高亮的功能,以便于在网页上插入代码时可以具有良好的展示效果。 ...
在Eclipse中,语法着色是提高代码可读性和开发效率的重要特性,它通过不同的颜色来区分代码的不同元素,如关键字、变量、字符串等。"Colorer Take"是一款基于Java的Eclipse插件,专门用于增强Eclipse的语法着色功能...
jQuery语法高亮插件是一种能够对网页上展示的程序源代码进行语法着色加亮的工具。通过这种方式,代码块在视觉上更为突出,便于阅读和理解。这种语法高亮功能通常用于技术文档、论坛、在线教学平台,以及编程相关的...
XMLBuddy和EclipseColorer是两个非常实用的Eclipse集成开发环境(IDE)插件,专注于提升XML文件编辑和代码高亮显示的体验。在本文中,我们将深入探讨这两个插件的功能、用途以及如何安装和使用它们。 首先,XMLBuddy...
此插件支持多种编程语言,包括但不限于C#、Java、Python、JavaScript等,能够自动识别语言类型并应用相应的语法高亮样式。这不仅提高了代码的视觉吸引力,也有助于读者更轻松地理解代码逻辑。 使用CNBlogs....
Prettier本身并不直接支持代码高亮,但通过与`prettier-markdown`结合,可以在解析Markdown文件时对代码块进行语法高亮。这个过程通常涉及到以下步骤: 1. **解析Markdown**:`prettier-markdown`首先会解析...
在本篇文章中,我们了解到如何利用Javascript在网页上实现代码的动态着色以及行号显示功能。文章中介绍的技术点主要涉及以下几个方面: 1. Javascript插件的使用:通过引入外部的Javascript插件,使得在不离开...
ICSharpCode.TextEditor_2.2的行号功能可以实时显示每一行的编号,这对于调试和查找错误非常有帮助。此功能的实现主要通过维护一个独立的缓冲区,用于绘制行号,然后将其与实际的文本内容一起显示在界面上。 除了...
语法高亮技术(Syntax Highlighting),也被称作语法着色,是一种通过颜色和格式将代码中的不同元素(比如关键字、字符串、注释等)区分开来的方法。这样的处理方式极大地增强了代码的可识别性,使得程序员在阅读...
这意味着用户可以直接将本地的JSON文件拖放到工具中,或者复制粘贴JSON文本,工具会自动进行格式化并着色显示,帮助开发者快速检查JSON数据的正确性和完整性。 另一个重要功能是“支持URL远程调用”。这使得开发者...
"language-javascript-semantic" 是一个面向Atom文本编辑器的插件,其目的是提供JavaScript的语义高亮,这意味着它不仅仅根据基本的语法结构进行高亮,还会考虑代码的含义和上下文。 Atom是一款开源的、可高度...
着色器的应用非常广泛,从简单的2D游戏到复杂的3D模拟,再到数据可视化和艺术创作。通过掌握着色器,开发者可以创造出逼真的视觉效果,实现动态阴影、反射、折射、雾化等特效,甚至可以进行物理模拟。 总的来说,...
2. **语法高亮与格式化**:该插件能对JavaScript代码进行语法着色,使代码更易读。同时,它还具备代码格式化功能,可按照设定的规则整理代码结构。 3. **错误检查与警告**:JSEclipse能实时检查代码中的语法错误和...
这个库是专门用于代码语法高亮的,它包含了大量的语言定义规则,通过匹配这些规则,对代码进行分词和着色。ueditor在接收到用户输入的代码后,会调用`highlight.js`进行处理,并将处理后的HTML返回到编辑器中展示。 ...