下划线命名和驼峰命名的相互转化
源代码:
let s1 = 'CamelCaseStringInThisStuffParagraph'
let s2 = 'user_define_under_score_fun'
// 从underscore到camelcase比较简单
function toCameCase(s2) {
let segments = s2.split('_')
for (let i = 0; i < segments.length; i++) {
segments[i] = segments[i][0].toUpperCase() + segments[i].slice(1)
}
return segments.join('')
}
const r1 = toCameCase(s2)
console.log(r1);
// 从CamelScore到under_score
function toUnderScore(s1) {
let reg = /[A-Z]/g
let tmp
while (tmp = reg.exec(s1)) {
/*
tmp:
*/
let index = tmp.index
if (index === 0) {
s1 = s1[index].toLowerCase() + s1.slice(index + 1)
} else {
s1 = s1.slice(0, index) + '_' + s1[index].toLowerCase() + s1.slice(index + 1)
}
}
return s1
}
const r2 = toUnderScore(s1)
console.log(r2);