当前位置: 首页 > news >正文

一键清除JavaScript代码中的注释:使用正则表达式实现

这个正则表达式可以有效地匹配 JavaScript 代码中的各种注释,并且跳过了以 http:https: 开头的链接。

/\/\*[\s\S]*?\*\/|\/\/[^\n]*|<!--[\s\S]*?-->|(?<!http:|https:)\/\/[^\n]*/g

vscode 实战,ctrl+F 调出查找替换工具,点击后面的正则匹配,输入我们的代码,替换值为空,即可实现一键全部替换,可以看到黄色部分就是匹配到的注释行,非常 nice
在这里插入图片描述
正则表达式解析:

  • 1 . \/\*[\s\S]*?\*\/ :匹配多行注释,包括 /* 开头和 */ 结尾之间的任何字符(包括换行符)。 [\s\S] 匹配任何字符, *? 表示非贪婪匹配,尽可能少地匹配字符。

  • 2 . \/\/[^\n]* :匹配单行注释,即以 // 开头的注释内容。 [^\n]* 匹配除换行符之外的任何字符。

  • 3 . <!--[\s\S]*?--> :匹配 HTML 注释,即 <!-- 开头和 --> 结尾之间的任何字符(包括换行符)。

  • 4 . (?<!http:|https:)\/\/[^\n]* :匹配单行注释,并且跳过以 http:https: 开头的链接。 (?<!http:|https:) 是一个负向零宽断言,用于确保 // 前面不是 http:https:

末尾的 /g 是指全局匹配(global match)标志,表示在目标字符串中查找所有匹配的子字符串,而不仅仅是第一个匹配项。如果不使用 /g 标志,那么正则表达式将只会匹配目标字符串中的第一个匹配项,并在找到第一个匹配项后停止搜索。

相关文章:

  • 三井住友保险中国区信息技术部负责人陈婧,将出席“ISIG-RPA超级自动化产业发展峰会”
  • Spring事件发布监听器ApplicationListener原理- 观察者模式
  • 策略分析:Atlassian Server版停止支持,Server版用户应该转向数据中心版本还是云版?
  • 探秘分布式神器RMI:原理、应用与前景分析(二)
  • python 运行环境(Docker 容器)
  • 执法仪主板方案定制_MTK平台安卓主板方案商
  • HSRP和VRRP
  • WPF —— ToolBar、Checkbox控价详解
  • 访问一次网站的全过程
  • SSM整合项目(使用Vue3 + Element-Plus创建项目基础页面)
  • 大型文件数据读取并持久化到数据库
  • 力扣--动态规划/回溯算法131.分割回文串
  • 【MacOS原版镜像下载】讲解
  • LaTex 笔记
  • 视频极速切割无损工具免费版,亲测好用!
  • Fastjson的基本使用方法大全
  • iOS 系统授权开发
  • Javascript弹出层-初探
  • Linux下的乱码问题
  • unity如何实现一个固定宽度的orthagraphic相机
  • webpack入门学习手记(二)
  • 爱情 北京女病人
  • 面试总结JavaScript篇
  • 无服务器化是企业 IT 架构的未来吗?
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • const的用法,特别是用在函数前面与后面的区别
  • ​queue --- 一个同步的队列类​
  • ​虚拟化系列介绍(十)
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #define 用法
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $.ajax()参数及用法
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (javascript)再说document.body.scrollTop的使用问题
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (k8s中)docker netty OOM问题记录
  • (Python第六天)文件处理
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)计算机毕业设计大学生兼职系统
  • (排序详解之 堆排序)
  • (七)Knockout 创建自定义绑定
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (四)JPA - JQPL 实现增删改查
  • (四)库存超卖案例实战——优化redis分布式锁
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)SvelteKit教程:hello world