前端页面添加代码编辑区域(css和sql高亮)

前端页面添加代码编辑区域(css和sql高亮)

初级菜鸟,工作遇到了前端页面需要放一块可编辑代码的区域,只需要高亮css和sql语句,就去各种百度,最后使用了codemirror,下面为记录步骤。

1.下载codemirror

官网直接下载,点击DOWNLOAD

2.下载完查看需要用到的css和js

lib目录下的css和js必须导入,然后就在mode里面找到需要的css和sql的js

3.运用到页面中

拿到的1个css和3个js文件引入到项目中

<link rel="stylesheet" type="text/css" href="lib/codemirror.css"/>
<script type="text/javascript" src="lib/codemirror.js"></script>
<script type="text/javascript" src="js/css.js"></script>
<script type="text/javascript" src="js/sql.js"></script>

html中代码

<body>
	<textarea name="editor" id="editor"></textarea>
</body>

自己本地的js文件中加入代码,这段代码参考codemirror的demo目录下的changemode.html文件

<script type="text/javascript">	
		myTextarea = document.getElementById("editor");
		var editor = CodeMirror.fromTextArea(myTextarea, {
          
   
//		    mode: "text/x-mysql",
		    lineNumbers: true,//显示行数
          	matchBrackets: true,  // 括号匹配(这个需要导入codemirror的matchbrackets.js文件)
		  });
	   	var pending;
		editor.on("change", function() {
          
   
		    clearTimeout(pending);
		    pending = setTimeout(update,200);
		});
		function looksLikeScheme(code) {
          
   
			//正则表达式,判断textarea中输入的是否是sql语句
		    return /^select[sS]*/.test(code) || /^insert.*$/.test(code) || /^delete.*$/.test(code) || /^update.*$/.test(code);
		}
		function update() {
          
   
			//如果输入是sql语句,则给editor设置mode属性为mysql,否则为css
		    editor.setOption("mode", looksLikeScheme(editor.getValue()) ? "text/x-mysql" : "text/css");
		}
</script>

4.测试

我要的高亮css和sql可以实现了。

经验分享 程序员 微信小程序 职场和发展