CSS代码格式化

format = (s) =>s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1").replace(/;\s*;/g, ";").replace(/\,[\s\.\#\d]*{/g, "{").replace(/([^\s])\{([^\s])/g, "$1 {\n\t$2").replace(/([^\s])\}([^\n]*)/g, "$1\n}\n$2").replace(/([^\s]);([^\s\}])/g, "$1;\n\t$2");

JS代码格式化

function jsFormat(js_source_text,indent_size = 2,indent_character = " ",indent_level = 0
) {var input,output,token_text,last_type,last_text,last_word,current_mode,modes,indent_string;var whitespace, wordchar, punct, parser_pos, line_starters, in_case;var prefix, token_type, do_block_just_closed, var_line, var_line_tainted;function trim_output() {while (output.length &&(output[output.length - 1] === " " ||output[output.length - 1] === indent_string)) {output.pop();}}function print_newline(ignore_repeated) {ignore_repeated =typeof ignore_repeated === "undefined" ? true : ignore_repeated;trim_output();if (!output.length) {return;}if (output[output.length - 1] !== "\n" || !ignore_repeated) {output.push("\n");}for (var i = 0; i < indent_level; i++) {output.push(indent_string);}}function print_space() {var last_output = output.length ? output[output.length - 1] : " ";if (last_output !== " " &&last_output !== "\n" &&last_output !== indent_string) {output.push(" ");}}function print_token() {output.push(token_text);}function indent() {indent_level++;}function unindent() {if (indent_level) {indent_level--;}}function remove_indent() {if (output.length && output[output.length - 1] === indent_string) {output.pop();}}function set_mode(mode) {modes.push(current_mode);current_mode = mode;}function restore_mode() {do_block_just_closed = current_mode === "DO_BLOCK";current_mode = modes.pop();}function in_array(what, arr) {for (var i = 0; i < arr.length; i++) {if (arr[i] === what) {return true;}}return false;}function get_next_token() {var n_newlines = 0;var c = "";do {if (parser_pos >= input.length) {return ["", "TK_EOF"];}c = input.charAt(parser_pos);parser_pos += 1;if (c === "\n") {n_newlines += 1;}} while (in_array(c, whitespace));if (n_newlines > 1) {for (var i = 0; i < 2; i++) {print_newline(i === 0);}}var wanted_newline = n_newlines === 1;if (in_array(c, wordchar)) {if (parser_pos < input.length) {while (in_array(input.charAt(parser_pos), wordchar)) {c += input.charAt(parser_pos);parser_pos += 1;if (parser_pos === input.length) {break;}}}if (parser_pos !== input.length &&c.match(/^[0-9]+[Ee]$/) &&input.charAt(parser_pos) === "-") {parser_pos += 1;var t = get_next_token(parser_pos);c += "-" + t[0];return [c, "TK_WORD"];}if (c === "in") {return [c, "TK_OPERATOR"];}return [c, "TK_WORD"];}if (c === "(" || c === "[") {return [c, "TK_START_EXPR"];}if (c === ")" || c === "]") {return [c, "TK_END_EXPR"];}if (c === "{") {return [c, "TK_START_BLOCK"];}if (c === "}") {return [c, "TK_END_BLOCK"];}if (c === ";") {return [c, "TK_END_COMMAND"];}if (c === "/") {var comment = "";if (input.charAt(parser_pos) === "*") {parser_pos += 1;if (parser_pos < input.length) {while (!(input.charAt(parser_pos) === "*" &&input.charAt(parser_pos + 1) &&input.charAt(parser_pos + 1) === "/") &&parser_pos < input.length) {comment += input.charAt(parser_pos);parser_pos += 1;if (parser_pos >= input.length) {break;}}}parser_pos += 2;return ["/*" + comment + "*/", "TK_BLOCK_COMMENT"];}if (input.charAt(parser_pos) === "/") {comment = c;while (input.charAt(parser_pos) !== "\x0d" &&input.charAt(parser_pos) !== "\x0a") {comment += input.charAt(parser_pos);parser_pos += 1;if (parser_pos >= input.length) {break;}}parser_pos += 1;if (wanted_newline) {print_newline();}return [comment, "TK_COMMENT"];}}if (c === "'" ||c === '"' ||(c === "/" &&((last_type === "TK_WORD" && last_text === "return") ||last_type === "TK_START_EXPR" ||last_type === "TK_END_BLOCK" ||last_type === "TK_OPERATOR" ||last_type === "TK_EOF" ||last_type === "TK_END_COMMAND"))) {var sep = c;var esc = false;c = "";if (parser_pos < input.length) {while (esc || input.charAt(parser_pos) !== sep) {c += input.charAt(parser_pos);if (!esc) {esc = input.charAt(parser_pos) === "\\";} else {esc = false;}parser_pos += 1;if (parser_pos >= input.length) {break;}}}parser_pos += 1;if (last_type === "TK_END_COMMAND") {print_newline();}return [sep + c + sep, "TK_STRING"];}if (in_array(c, punct)) {while (parser_pos < input.length &&in_array(c + input.charAt(parser_pos), punct)) {c += input.charAt(parser_pos);parser_pos += 1;if (parser_pos >= input.length) {break;}}return [c, "TK_OPERATOR"];}return [c, "TK_UNKNOWN"];}indent_character = indent_character;indent_size = indent_size;indent_string = "";while (indent_size--) {indent_string += indent_character;}input = js_source_text;last_word = "";last_type = "TK_START_EXPR";last_text = "";output = [];do_block_just_closed = false;var_line = false;var_line_tainted = false;whitespace = "\n\r\t ".split("");wordchar ="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$".split("");punct ="+ - * / % & ++ -- = += -= *= /= %= == === != !== > < >= <= >> << >>> >>>= >>= <<= && &= | || ! !! , : ? ^ ^= |=".split(" ");line_starters ="continue,try,throw,return,var,if,switch,case,default,for,while,break,function".split(",");current_mode = "BLOCK";modes = [current_mode];indent_level = indent_level;parser_pos = 0;in_case = false;while (true) {var t = get_next_token(parser_pos);token_text = t[0];token_type = t[1];if (token_type === "TK_EOF") {break;}switch (token_type) {case "TK_START_EXPR":var_line = false;set_mode("EXPRESSION");if (last_type === "TK_END_EXPR" || last_type === "TK_START_EXPR") {} else if (last_type !== "TK_WORD" && last_type !== "TK_OPERATOR") {print_space();} else if (in_array(last_word, line_starters) &&last_word !== "function") {print_space();}print_token();break;case "TK_END_EXPR":print_token();restore_mode();break;case "TK_START_BLOCK":if (last_word === "do") {set_mode("DO_BLOCK");} else {set_mode("BLOCK");}if (last_type !== "TK_OPERATOR" && last_type !== "TK_START_EXPR") {if (last_type === "TK_START_BLOCK") {print_newline();} else {print_space();}}print_token();indent();break;case "TK_END_BLOCK":if (last_type === "TK_START_BLOCK") {trim_output();unindent();} else {unindent();print_newline();}print_token();restore_mode();break;case "TK_WORD":if (do_block_just_closed) {print_space();print_token();print_space();break;}if (token_text === "case" || token_text === "default") {if (last_text === ":") {remove_indent();} else {unindent();print_newline();indent();}print_token();in_case = true;break;}prefix = "NONE";if (last_type === "TK_END_BLOCK") {if (!in_array(token_text.toLowerCase(), ["else", "catch", "finally"])) {prefix = "NEWLINE";} else {prefix = "SPACE";print_space();}} else if (last_type === "TK_END_COMMAND" &&(current_mode === "BLOCK" || current_mode === "DO_BLOCK")) {prefix = "NEWLINE";} else if (last_type === "TK_END_COMMAND" &&current_mode === "EXPRESSION") {prefix = "SPACE";} else if (last_type === "TK_WORD") {prefix = "SPACE";} else if (last_type === "TK_START_BLOCK") {prefix = "NEWLINE";} else if (last_type === "TK_END_EXPR") {print_space();prefix = "NEWLINE";}if (last_type !== "TK_END_BLOCK" &&in_array(token_text.toLowerCase(), ["else", "catch", "finally"])) {print_newline();} else if (in_array(token_text, line_starters) ||prefix === "NEWLINE") {if (last_text === "else") {print_space();} else if ((last_type === "TK_START_EXPR" || last_text === "=") &&token_text === "function") {} else if (last_type === "TK_WORD" &&(last_text === "return" || last_text === "throw")) {print_space();} else if (last_type !== "TK_END_EXPR") {if ((last_type !== "TK_START_EXPR" || token_text !== "var") &&last_text !== ":") {if (token_text === "if" &&last_type === "TK_WORD" &&last_word === "else") {print_space();} else {print_newline();}}} else {if (in_array(token_text, line_starters) && last_text !== ")") {print_newline();}}} else if (prefix === "SPACE") {print_space();}print_token();last_word = token_text;if (token_text === "var") {var_line = true;var_line_tainted = false;}break;case "TK_END_COMMAND":print_token();var_line = false;break;case "TK_STRING":if (last_type === "TK_START_BLOCK" || last_type === "TK_END_BLOCK") {print_newline();} else if (last_type === "TK_WORD") {print_space();}print_token();break;case "TK_OPERATOR":var start_delim = true;var end_delim = true;if (var_line && token_text !== ",") {var_line_tainted = true;if (token_text === ":") {var_line = false;}}if (token_text === ":" && in_case) {print_token();print_newline();break;}in_case = false;if (token_text === ",") {if (var_line) {if (var_line_tainted) {print_token();print_newline();var_line_tainted = false;} else {print_token();print_space();}} else if (last_type === "TK_END_BLOCK") {print_token();print_newline();} else {if (current_mode === "BLOCK") {print_token();print_newline();} else {print_token();print_space();}}break;} else if (token_text === "--" || token_text === "++") {if (last_text === ";") {start_delim = true;end_delim = false;} else {start_delim = false;end_delim = false;}} else if (token_text === "!" && last_type === "TK_START_EXPR") {start_delim = false;end_delim = false;} else if (last_type === "TK_OPERATOR") {start_delim = false;end_delim = false;} else if (last_type === "TK_END_EXPR") {start_delim = true;end_delim = true;} else if (token_text === ".") {start_delim = false;end_delim = false;} else if (token_text === ":") {if (last_text.match(/^\d+$/)) {start_delim = true;} else {start_delim = false;}}if (start_delim) {print_space();}print_token();if (end_delim) {print_space();}break;case "TK_BLOCK_COMMENT":print_newline();print_token();print_newline();break;case "TK_COMMENT":print_space();print_token();print_newline();break;case "TK_UNKNOWN":print_token();break;}last_type = token_type;last_text = token_text;}return output.join("");
}

前端CSS代码格式化、JavaScript代码格式化函数相关推荐

  1. 推荐两个在线格式化JavaScript代码的网站

    找到两个在线格式化JavaScript代码的网站, 很好很强大, 分享下: 1. http://jsbeautifier.org/, 速度很快, 很好很强大! 2. http://tools.jb51 ...

  2. web前端 - 写出漂亮JavaScript代码的实用技巧

    1.按强类型风格写代码 js是弱类型的,但是写代码的时候不能太随意,写得太随意也体现了编码风格不好.下面分点说明: (1)定义变量的时候要指明类型,告诉JS解释器这个变量是什么数据类型的,而不要让解释 ...

  3. 【前端系列教程之JavaScript】16_JavaScript函数进阶

    函数进阶 函数回顾 函数的定义方式 函数声明 function foo () {} 函数表达式 var foo = function () {} 函数声明与函数表达式的区别 函数声明必须有名字 函数声 ...

  4. 在线压缩html,JS代码压缩 - javascript代码压缩 - jsmin在线js压缩工具

    输入代码: // is.js // (c) 2001 Douglas Crockford // 2001 June 3 // The -is- object is used to identify t ...

  5. php js date 格式化,javascript date格式化示例_javascript技巧

    /** * 对Date的扩展,将 Date 转化为指定格式的String * 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) 可以用 1-2 个占位符 * ...

  6. JavaScript 代码格式化

    图片来源:pixiv 54808053 每个人都可能有自己的代码风格和格式,但如果一个项目中的所有人都遵循同一风格的话,这个项目就能更顺利地进行.每个人未必能同意每一处格式规则,而且其中的不少规则需要 ...

  7. 加入收藏代码_100个原生JavaScript代码片段知识点详细汇总【实践】

    作者:小棋子js 转发链接:https://www.jianshu.com/p/b5171efa340f JavaScript 是目前最流行的编程语言之一,正如大多数人所说:"如果你想学一门 ...

  8. php中如何调用javascript,如何在php中调用javascript代码?

    JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何在php中调用javascript代码?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下 ...

  9. php中调用代码,如何在php中调用javascript代码?

    JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何在php中调用javascript代码?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下 ...

  10. Cordova应用的JavaScript代码和自定义插件代码的调试

    我之前写过三篇Cordova相关的技术文章.当我们使用Cordova将自己开发的前端应用打包安装到手机上后,可能会遇到需要调试Cordova应用的时候. 本文就介绍Cordova应用的调试步骤. 如果 ...

最新文章

  1. python自动化办公脚本下载-基于python实现自动化办公学习笔记二
  2. DPM系列之一:安装dpm与attach dpmagent
  3. 面向对象第四单元(UML)总结体会课程总结
  4. (转载)大数据与企业的数据化运营
  5. codeup 二叉树(dfs超时版)
  6. Linux shell字符串截取与拼接
  7. python循环套循环_零基础学python 14 循环套循环:循环的嵌套
  8. Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制
  9. android图片上加有汉字,Android 为图片添加文字水印
  10. java gridlayout 设置列宽_在Kivy的GridLayout中设置网格列宽?
  11. Flutter监听网络变化
  12. 从 Storm 到 Flink,汽车之家基于 Flink 的实时 SQL 平台设计思路与实践
  13. STM32F103实现CMSIS-DAP
  14. 准备给ubuntu18.04安装杀毒软件
  15. 禁止QQ2010(2009)弹迷你首页的方法
  16. 管理是管事,领导是带人!
  17. 将多个class文件打包为jar包
  18. java基于ssm开发的弹幕视频网站源码
  19. office右键没有新建word,Visio等解决办法
  20. kafka删除topic时,显示marked for deletion

热门文章

  1. ​合并PDF文件什么方法很简单?看完你就明白了
  2. (私人收藏)64个精致的页面loadinggif动画
  3. 仪表放大器 电流的检测
  4. 如何做好软件测试计划工作?
  5. XPipe: Efficient Pipeline Model Parallelism for Multi-GPU DNN Training
  6. daliu_IT学习Android笔记第一篇--Android是什么?安卓的logo来源?安卓的发展过程?
  7. 相伴女人一生的爱情语录[组图]
  8. python 单词库_如何快速获取语料库中的单词集合(使用nltk)?
  9. 【烈日炎炎战后端】Elecsticsearch(1.5万字)
  10. Linux下优雅的让程序后台运行