if (typeof json !== ‘string‘) { json = JSON.stringify(json); } else { json = JSON.parse(json); json = JSON.stringify(json); }
// 在大括号前后添加换行 reg = /([\{\}])/g; json = json.replace(reg, ‘\r\n$1\r\n‘); // 中括号前后添加换行 reg = /([\[\]])/g; json = json.replace(reg, ‘\r\n$1\r\n‘); // 逗号后面添加换行 reg = /(\,)/g; json = json.replace(reg, ‘$1\r\n‘);
// 去除多余的换行 reg = /(\r\n\r\n)/g; json = json.replace(reg, ‘\r\n‘); // 逗号前面的换行去掉 reg = /\r\n\,/g; json = json.replace(reg, ‘,‘); //冒号前面缩进 reg = /\:/g; json = json.replace(reg, ‘: ‘);
$.each(json.split(‘\r\n‘), function(index, node) {});
//这里遇到{、[时缩进等级加1,遇到}、]时缩进等级减1,没遇到时缩进等级不变 if (node.match(/\{$/) || node.match(/\[$/)) { indent = 1; } else if (node.match(/\}/) || node.match(/\]/)) { if (pad !== 0) { pad -= 1; } } else { indent = 0; }
.ObjectBrace{color:#00AA00;font-weight:bold;} .ArrayBrace{color:#0033FF;font-weight:bold;} .PropertyName{color:#CC0000;font-weight:bold;} .String{color:#007777;} .Number{color:#AA00AA;} .Comma{color:#000000;font-weight:bold;}
//添加代码高亮 node = node.replace(/([\{\}])/g,"<span class=‘ObjectBrace‘>$1</span>"); node = node.replace(/([\[\]])/g,"<span class=‘ArrayBrace‘>$1</span>"); node = node.replace(/(\".*\")(\:)(.*)(\,)?/g,"<span class=‘PropertyName‘>$1</span>$2$3$4"); node = node.replace(/\"([^"]*)\"(\,)?$/g,"<span class=‘String‘>\"$1\"</span><span class=‘Comma‘>$2</span>"); node = node.replace(/(-?\d+)(\,)?$/g,"<span class=‘Number‘>$1</span><span class=‘Comma‘>$2</span>");
<script> var APP=function(){ var format=function(json){ var reg=null, result=‘‘; pad=0, PADDING=‘ ‘; if (typeof json !== ‘string‘) { json = JSON.stringify(json); } else { json = JSON.parse(json); json = JSON.stringify(json); } // 在大括号前后添加换行 reg = /([\{\}])/g; json = json.replace(reg, ‘\r\n$1\r\n‘); // 中括号前后添加换行 reg = /([\[\]])/g; json = json.replace(reg, ‘\r\n$1\r\n‘); // 逗号后面添加换行 reg = /(\,)/g; json = json.replace(reg, ‘$1\r\n‘); // 去除多余的换行 reg = /(\r\n\r\n)/g; json = json.replace(reg, ‘\r\n‘); // 逗号前面的换行去掉 reg = /\r\n\,/g; json = json.replace(reg, ‘,‘); //冒号前面缩进 reg = /\:/g; json = json.replace(reg, ‘: ‘); //对json按照换行进行切分然后处理每一个小块 $.each(json.split(‘\r\n‘), function(index, node) { var i = 0, indent = 0, padding = ‘‘; //这里遇到{、[时缩进等级加1,遇到}、]时缩进等级减1,没遇到时缩进等级不变 if (node.match(/\{$/) || node.match(/\[$/)) { indent = 1; } else if (node.match(/\}/) || node.match(/\]/)) { if (pad !== 0) { pad -= 1; } } else { indent = 0; } //padding保存实际的缩进 for (i = 0; i < pad; i++) { padding += PADDING; } //添加代码高亮 node = node.replace(/([\{\}])/g,"<span class=‘ObjectBrace‘>$1</span>"); node = node.replace(/([\[\]])/g,"<span class=‘ArrayBrace‘>$1</span>"); node = node.replace(/(\".*\")(\:)(.*)(\,)?/g,"<span class=‘PropertyName‘>$1</span>$2$3$4"); node = node.replace(/\"([^"]*)\"(\,)?$/g,"<span class=‘String‘>\"$1\"</span><span class=‘Comma‘>$2</span>"); node = node.replace(/(-?\d+)(\,)?$/g,"<span class=‘Number‘>$1</span><span class=‘Comma‘>$2</span>"); result += padding + node + ‘<br>‘; pad += indent; }); return result; }; return { "format":format, }; }(); </script>
参考来源:
使用正则表达式的格式化与高亮显示json字符串
http://www.lai18.com/content/351722.html
1JavaScript正则表达式中的ignoreCase属性使用详解
2详解JavaScript正则表达式中的global属性的使用
3简述JavaScript的正则表达式中test()方法的使用
5JavaScript正则表达式之multiline属性的应用
8【JavaScript】利用正则表达式检查输入框输入的是否为网址
11javascript使用正则表达式实现去掉空格之后的字符
14javascript正则表达式之search()用法实例
15javascript正则表达式使用replace()替换手机号的方法
28javascript正则表达式参数/g与/i及/gi的使用指南
34JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
40js正则表达式中test,exec,match方法的区别说明
45正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
60Jquery Validate 正则表达式实用验证代码大全
62如何使用Javascript正则表达式来格式化XML内容
66实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
68JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
73js正则表达式
75javascript 进阶篇1 正则表达式,cookie管理,userData
76jQuery源码分析-02正则表达式 RegExp 常用正则表达式
93javascript 获取链接文件地址中第一个斜线内的正则表达式
94用正则表达式 动态创建/增加css style script 兼容IE firefox
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/u011252402/article/details/47802905