import {validatenull} from "@/utils/validate"; /** * 格式化工具类 */ export default class formatter { static prettyCode(str) { try { // 为空则返回空 if (validatenull(str)) { return ''; } // 解析并格式化JSON字符串 str = JSON.stringify(JSON.parse(str), null, 2); // 使用HTML实体进行替换(不改变&符号) str = str.replace(//g, '>'); // 返回格式化的字符串,并添加样式类 return str.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) { let cls = 'number'; if (/^"/.test(match)) { if (/:$/.test(match)) { cls = 'key'; } else { cls = 'string'; } } else if (/true|false/.test(match)) { cls = 'boolean'; } else if (/null/.test(match)) { cls = 'null'; } return match; }); } catch (e) { return str; } } }