当前位置:首页 > JavaScript

js实现代码高亮显示

2026-01-30 19:55:24JavaScript

实现代码高亮的方法

使用第三方库(推荐)

最简便的方式是使用现成的代码高亮库,例如 highlight.jsPrism.js。这些库支持多种编程语言,并自动检测语言类型。

安装 highlight.js

js实现代码高亮显示

npm install highlight.js

引入并初始化:

import hljs from 'highlight.js';
import 'highlight.js/styles/github.css'; // 选择主题样式

document.addEventListener('DOMContentLoaded', () => {
  document.querySelectorAll('pre code').forEach((block) => {
    hljs.highlightElement(block);
  });
});

手动实现简单高亮

如果需要轻量级实现,可以通过正则表达式匹配关键字并添加样式类。

js实现代码高亮显示

function highlightCode(code, language) {
  const keywords = {
    javascript: ['function', 'const', 'let', 'if', 'else', 'return'],
    html: ['<div>', '<p>', '<span>']
  };

  return code.replace(
    new RegExp(`\\b(${keywords[language].join('|')})\\b`, 'g'),
    '<span class="keyword">$1</span>'
  );
}

document.querySelector('pre code').innerHTML = highlightCode(
  'function example() { return true; }',
  'javascript'
);

CSS 样式示例

为高亮元素添加样式:

.keyword {
  color: #0077aa;
  font-weight: bold;
}

.comment {
  color: #999;
  font-style: italic;
}

动态加载语言包(高级用法)

highlight.js 支持按需加载语言包以减少体积:

import hljs from 'highlight.js/lib/core';
import javascript from 'highlight.js/lib/languages/javascript';

hljs.registerLanguage('javascript', javascript);
hljs.highlightAll();

注意事项

  • 第三方库通常支持自动语言检测,但手动指定语言可以提高准确性:
    <pre><code class="language-javascript">const a = 1;</code></pre>
  • 对于服务端渲染(SSR),需在组件挂载后执行高亮逻辑。
  • 深色/浅色主题切换时可能需要重新初始化高亮。

标签: 代码js
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

h5实现响应式代码

h5实现响应式代码

响应式设计基础 HTML5实现响应式设计主要通过媒体查询(Media Queries)、弹性布局(Flexbox)、网格布局(Grid)和视口设置(Viewport Meta Tag)等技术。核心目标…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…