实用小工具之不同命名法下的变量相互转换
Hi,这里是zijng 在工作或学习中你是否常常遇到使用驼峰命名法时遇到下划线命名法,使用下划线命名法时遇到驼峰命名法的情况,不得不手动一个个去更改还极其容易改错,尤其是对接口的时候看得人那叫一个眼花缭乱。作为一个程序员肯定不能让这么重复的事发生在自己身上,秉承着能少干点是一点的原则,我简单设计了个简单的转换程序。
代码实现原理
实现这款工具主要利用了正则表达式,如果你对其不太了解或者想快速了解可以看作者的这篇博客
话不多说直接来分析驼峰命名以及下划线命名的结构
驼峰命名法:要求第一个单词首字母小写,后面其他单词首字母大写
下划线命名法:要求单词与单词之间通过下划线连接即可
认知到了这几种命名法的结构那么接下来就简单了,只需根据根据其接口写个正则表达式去匹配替换即可
以下是匹配其的正则表达式
//驼峰命名
const transform = /[A-Z]/g
//下划线命名
const transform = /_[^_]/g
有了相应的正则表达式接下来就只需利用replace方法将其替换即可
//驼峰命名
const tfHump = /[A-Z]/g
//下划线命名
const tfUnderline = /_[^_]/g
let strHump = 'ziJingFanHua'
let strUnderline = 'zi_jing_fan_hua'
let newStrHump = strHump.replace(tfHump,(val) => {
console.log(val) // J F H
return '_' + val.toLowerCase()
})
console.log(newStrHump) //zi_jing_fan_hua
let newstrUnderline = strUnderline.replace(tfUnderline,($0,$1,$2) => {
console.log($0); //_j _f _h
console.log($1); // _ _ _
console.log($2); // j f h
return $2.toUpperCase()
})
console.log(newStrHump) //ziJingFanHua
太长不看版
主要利用正则表达式去匹配单词然后利用字符串的replace方法将其替换
点击这个页面直接使用