获取代码中所有的中文并排除注释代码

news2024/12/30 21:15:55

在给项目添加国际化适配时,需要吧代码中的中文一个一个替换成 $t(xxx.xxx) 这种代码,但是一个一个找中文比较麻烦,而且容易遗漏,于是就有了下面的代码,可以快速的帮我们找出对应文件中的所有中文,并且把中文放在一个对象中,我们直接复制就可以使用。而且排除了html注释和JS注释,只匹配真正需要的中文

const fs = require('fs')

function extractChinese(filePath, startNum) {
  fs.readFile(filePath, 'utf8', function (err, data) {
    if (err) {
      console.error(err)
      return
    }

    // 移除单行注释
    let noSingleLineComments = data.replace(/\/\/[^\n]*/g, '')
    // 移除多行注释
    let noMultiLineComments = noSingleLineComments.replace(/\/\*[\s\S]*?\*\//g, '')
    // 移除HTML注释
    let noComments = noMultiLineComments.replace(/<!--[\s\S]*?-->/g, '')

    // 匹配中文字符
    let matches = noComments.match(/[\u4e00-\u9fa5]+/g)
    if (matches) {
      let result = {}
      matches.forEach((match) => {
        result['t' + startNum] = match
        startNum++
      })
      console.log(JSON.stringify(result, null, 2))
    }
  })
}

let path = 'D:\\xxxxx\\test.vue'
let startNum = 1

// 使用方法
extractChinese(path, startNum)

test.vue 文件的内容如下

<template>
  <div>
    <!--注释代码-->
    <div>真实的中文字段</div>
  </div>
</template>

<script>
export default {
  name: 'test',
  data() {
    return {
      name: '姓名',
      pwd: '密码',
    }
  },
  mounted() {
    // 这是JS注释中文
    console.log('代码中的中文')
  },
}
</script>

里面有HTML注释和JS注释,然后使用上面的方法执行一遍
在这里插入图片描述
可以看到非常方便的就获取到了真正需要替换的中文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

链表OJ——环形链表初阶与进阶

呀哈喽&#xff0c;我是结衣。 环形链表1 描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数…

安防监控EasyCVR视频汇聚平台无法接入Ehome5.0是什么原因?该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、回放…

TensorFlow学习笔记--(1)张量的随机生成

张量的生成 如何判断一个张量的维数&#xff1a;看张量的中括号有几层 0 1 2 &#xff1a;零维数列 [2 4 6] : 一维向量 [ [1 2 3] [4 5 6] ] : 二维数组 两行三列 第一行数据为 1 2 3 第二行数据为 4 5 6 以此类推 n维张量有n层中括号 tf.zeros(%指定一个张量的维数%) 生成一…

通用型 SPI-Flash 相关知识汇总(w25q16\q64,gd25q128\q256)

目录 管脚定义&#xff1a; 常用指令&#xff1a; GD25q16: gd25Q28 ​编辑 gw25q16 ​编辑 芯片丝印说明&#xff1a; GD系列&#xff1a; winbond系列&#xff1a; Read Identification&#xff08;9FH&#xff09;&#xff1a; 常见ID&#xff1a; GD: ​编辑…

class类默认导出,header字段在请求中的位置

这是封装好的&#xff0c;没封装的如下 如果没有用uni.post那么就是如下的结构 let header {Content-Type: application/x-www-form-urlencoded,tenant: MDAwMA, } request({url:/sal/formula/validFormula,method:post,data:{},header })

react-native技术难点与亮点

记录在数字化矿山 react-native App项目上所使用的知识点 文章目录 1&#xff0c;宽度自适应表格实现2&#xff0c;新建作业手势动画3&#xff0c;tabBar中间midTabBar动态展示4&#xff0c;堆料图实现5&#xff0c;语音识别实现6&#xff0c;待办事项上下滑动切换页面7&#x…

2022最新版-李宏毅机器学习深度学习课程-P46 自监督学习Self-supervised Learning(BERT)

一、概述&#xff1a;自监督学习模型与芝麻街 参数量 ELMO&#xff1a;94MBERT&#xff1a;340MGPT-2&#xff1a;1542MMegatron&#xff1a;8BT5&#xff1a;11BTuring NLG&#xff1a;17BGPT-3&#xff1a;175BSwitch Transformer&#xff1a;1.6T 二、Self-supervised Lear…

leaflet 地图遮罩、扣洞

leaflet地图遮罩效果图 主要代码&#xff1a; geojson也在下面 地图加载完成之后直接调用 drawBoundaryMask 方法 //边界高亮及遮罩效果drawBoundaryMask() {L.geoJSON(this.geojson, {style: function(feature) {return {fillColor: #000,stroke: #CD853F,fillOpacity: 0.4,c…

如何导出PPT画的图为高清图片?插入到world后不压缩图像的设置方法?

期刊投稿的时候&#xff0c;需要图片保持一定的清晰度数&#xff0c;那么我们怎么才能从PPT中导出符合要求的图片呢&#xff1f; 对于矢量图绘图软件所画的图&#xff0c;直接导出即可。 而PPT导出的图片清晰度在60pi&#xff0c;就很模糊。 整体思路&#xff1a; PPT绘图——…

国内做的好的工业RFID品牌有哪些?

随着数字化转型与智能制造的深入推荐&#xff0c;工业自动化程度的不断提高&#xff0c;RFID技术作为重要的自动识别与数据采集技术&#xff0c;越来越多地应用在工业领域。国内涉及RFID领域的企业也越来越多&#xff0c;那么&#xff0c;国内做的好的工业RFID品牌有那些呢&…

基于SpringBoot+Vue的招生管理系统

基于springbootvue的招生管理系统~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 专业信息 登录界面 管理员界面 录取通知管理 专业报名管理 摘要 基于Spring Boot和V…

安防监控系统视频融合平台EasyCVR页面地图功能细节详解

安防监控视频汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&#xff…

原始手工配置ipsec vpn案例

两边防火墙的基本配置&#xff1a; 接口加入到对应的zone 默认路由 ip route-static 0.0.0.0 0 1.1.1.2 保证公网能ping通 抓包

vue3介绍

介绍 3完全兼容2的语法 vue3&#xff1a;体积更小&#xff0c;性能会更高。底层做了很多优化 2倍左右 vue3vitets 渐进式框架 vue3和vue2 的区别 新语法&#xff0c;性能上提升很多 思想是一致的&#xff1a;动态绑定&#xff1a;状态data&计算属性&#xff0c;监听某些状态…

Kevin is Counting Stars(规律)---牛客练习赛117

解析&#xff1a; 当任意一个数都1&#xff0c;这个数都会变成最大值时为sum-max-min 否则都为 sum-max-min1 只需要排序后&#xff0c;从第二个到最后都相等时不成立 #include<bits/stdc.h> using namespace std; #define int long long const int N2e55; int n,a[N]; …

C语言 指针进阶

目录 数组指针 指针数组访问数组元素 再次讨论数组名 数组指针访问一维数组&#xff08;但是这样会很别扭&#xff09; 访问二维数组元素 非数组指针访问 数组指针访问 数组传参Demo 一维数组传参 二维数组传参 指针数组指针 字符指针 函数指针 函数指针调用时可以…

C语言迭代法求一个数的平方根。迭代公式:Xn+1=(Xn+a/Xn)/2,其中a是输入的数字

完整代码&#xff1a; // 迭代法求一个数的平方根。迭代公式&#xff1a;Xn1(Xna/Xn)/2&#xff0c;其中 a 是输入的数字。 #include<stdio.h> #include<math.h> int main() {double x1, x2;double a;//a是要求的数printf("请输入一个数&#xff1a;")…

优化AI机器人外呼体验二

优化体验一的时候分享了影响语音机器人效果的五大因素&#xff1a;交互流程设计、语音质量、交互速度、用户反馈机制和数据隐私保护。本篇我就其中的话术制作来做一些分享&#xff0c;其实也就是把上次的交互流程设计分享的更详细。 先说一下话术制作流程。一般是由语音机器人厂…

【Git】安装和常用命令的使用与讲解及项目搭建和团队开发的出现的问题并且给予解决

目录 一、概述 1. 介绍 2. Git与SVN区别 3. 使用流程 二、命令讲解 1. 文件状态 2. 工作区域 三、命令使用 1. 安装 2. 使用前准备 3. 搭建项目环境 4. 团队开发 一、概述 1. 介绍 Git是一个开源的分布式版本控制系统&#xff0c;最初由Linus Torvalds于2005年创…

美国阿里海外仓地址

随着跨境电商的发展&#xff0c;越来越多的消费者开始关注海外购物。而在美国&#xff0c;有一个名为阿里海外仓的地方&#xff0c;为消费者提供了便捷的购物体验。本文将详细介绍美国阿里海外仓的地址、服务内容以及如何下单等相关信息。 一、美国阿里海外仓地址 美国阿里海外…