起因
老板想要做中英文切换的网站,并且还是已经成型的项目,人麻了,不相干的第N天。
日子凑合过呗,还能离咋地。
想偷懒
这是第一生产力,为了不想麻烦,并且还能产生很多其他的麻烦
比如<div title="你xx">可能会改成<div title="$t('home.xx')">少了冒号,不会读取变量,所以不会编译
又比如this.$confirm("是否删除这条数据?", "提示"),被改成了this.$confirm("是否删除这条数据?", this.this.$t("home.tips")),这种错误检查起来更烦,痛定思痛,用我能想到的方法node直接替换文件。
问题
操作大量的字符串,第一想到的应该是split,但是由于种种原因,最后选择了正则,然后又有一下问题。
- 区分html和js,不用管css
- 区分html中标签内和标签外的中文
- 区分标签内是否带有判断
大概就这些
// 通过fs模块获取到文件内容
let htmlStr = data.match(/<template>(.|\r\n)*<\/template>/)[0];
let jsStr = data.match(/(<script>|<script.*>)(.|\r\n)*<\/script>/)[0];
使用正则提取标签内属性和标签外内容
标签内:/([\w-]+)="([^"]+)"/g
标签外:/>([\s\S]*?)</gi
判断是否有判断:/(\=\=\=)|(\=\=)/
目前只是一个初坯,如有不足的地方,欢迎补充
pan.baidu.com/s/1h6rZlSQU… 提取码: rzk5 复制这段内容后打开百度网盘手机App,操作更方便哦